将我的链接列表转换为双向链接列表,但在insertHead上访问之前的问题时遇到问题

时间:2013-04-16 05:20:21

标签: 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* 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;
     } 
}`

1 个答案:

答案 0 :(得分:0)

->运算符的higher precedence大于*。所以,  *head->previous被归为*(head->previous),这不是您想要的。使用括号:

(*head)->previous = newHead;