203. 移除链表元素
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;
}
};

既然删除,那就要得到删除节点的前一个节点。

如果删除的节点是第一个节点,怎么办?看来需要虚拟头结点。