C 正在将我的链接列表转换为双链接列表,但在insertHead访问上一个链接时遇到问题
我在试图访问这行代码中非结构或联合中的“previous”时出错: *head->previous=newHead 我不太清楚为什么。。。非常感谢您的帮助C 正在将我的链接列表转换为双链接列表,但在insertHead访问上一个链接时遇到问题,c,doubly-linked-list,C,Doubly Linked List,我在试图访问这行代码中非结构或联合中的“previous”时出错: *head->previous=newHead 我不太清楚为什么。。。非常感谢您的帮助 ` struct ListNode { int value; struct ListNode* next; struct ListNode* previous; }; void insertAtHead(struct ListNode** head,int val) { struct ListNode
`
struct ListNode
{
int value;
struct ListNode* next;
struct ListNode* previous;
};
void insertAtHead(struct ListNode** head,int val)
{
struct ListNode* newHead = malloc(sizeof(struct ListNode));
newHead->value = val;
newHead->next = NULL;
newHead->previous = NULL;
if(*head == NULL)
*head = newHead;
else
{
newHead->next = *head;
*head->previous = newHead;
*head = newHead;
}
}`
->
运算符的值大于*
。所以
*head->previous
被分组为*(head->previous)
,这不是您想要的。使用括号:
(*head)->previous = newHead;
尝试(*head)->上一个