就是很基本的删除链表中值为val的结点,这是一道简单题,然而我一开始却没有写对...
/** * Definition for singly-linked list. * struct ListNode { * int val; *
struct ListNode *next; * }; */ struct ListNode* removeElements(struct ListNode*
head, int val) { struct ListNode* p = (struct ListNode*)malloc(sizeof(struct
ListNode));//struct ListNode* p = malloc(sizeof(struct ListNode));也有这种写法
p->next = head; struct ListNode* temp = p; while (temp->next != NULL) { if
(temp->next->val == val) { temp->next = temp->next->next; } else { temp =
temp->next; } } return p->next; }
* 返回值的问题,一定是p->next,因为p->next和head不一定相等。([7,7,7,7,7])
*
设置头节点的时候,一定要先申请空间。这种写法也可以struct ListNode* p = malloc(sizeof(struct ListNode));(之前没见过,一下懵了)