203. Remove Linked List Elements - cocoder39/coco39_LC GitHub Wiki
203. Remove Linked List Elements
recursion:
ListNode* removeElements(ListNode* head, int val) {
if (! head) {
return nullptr;
}
head->next = removeElements(head->next, val);
return (head->val == val) ? head->next : head;
}
iteration:
ListNode* removeElements(ListNode* head, int val) {
ListNode dummy(0);
dummy.next = head;
ListNode* p = &dummy;
while (p->next) {
p->next->val == val ? p->next = p->next->next : p = p->next;
}
return dummy.next;
}