leetcode 203 Remove Linked List Elements
题干:
Input: head = [1,2,6,3,4,5,6], val = 6
Output: [1,2,3,4,5]
解:
涉及对头节点的操作,用到dummy node。
只需判断当前节点cur的值是否等于val,相等就将前一个节点的next指向cur->next并删除cur,不等就继续往下判断。
ListNode* removeElements(ListNode* head, int val) {
ListNode dummy(-1, head);
ListNode*prev = &dummy, *cur = head;
while(cur){
if(cur->val == val){
ListNode* tmp = cur;
prev->next = cur->next;
cur = cur->next;
delete(tmp);
}
else{
prev = cur;
cur = cur->next;
}
}
return dummy.next;
}