LeetCode | 203. 移除链表元素
OJ链接
-
这里有两个思路我接下来看
-
当cur不等于6就一直找,找到了
6
就删除,但是能不能直接删除?不能,直接free了就找不到下一个了 -
这个时候我们就要定义
next
指针,和prev
指针,next
指针保存cur
的下一个地址,prev
保存cur
的前一个地址
代码如下:
struct ListNode* removeElements(struct ListNode* head, int val) {struct ListNode* prev = NULL;struct ListNode* cur=head;while(cur != NULL){if(cur->val == val){struct ListNode* next = cur->next;free(cur);if(prev)prev->next = next;elsehead = next;cur = next;}else{prev = cur;cur = cur->next;}}return head;
}