1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| class Solution { public: ListNode* removeElements(ListNode* head, int val) {
ListNode* virtualHead = new ListNode(-1); virtualHead->next = head;
ListNode* prev = virtualHead; while(head){ if(head->val == val){ prev->next = head->next; }else{ prev = prev->next; } head = head->next; }
return virtualHead->next; } };
|
既然删除,那就要得到删除节点的前一个节点。
如果删除的节点是第一个节点,怎么办?看来需要虚拟头结点。