双指针技巧:
class Solution {
public:
ListNode* removeElements(ListNode* head, int val) {
ListNode* dummy = new ListNode(-1);
dummy->next = head;
ListNode* p = dummy;
while(p&&p->next){
ListNode* q = p->next;
while(q&&q->val==val) q=q->next;
p->next = q;
p = p->next;
}
return dummy->next;
}
};
这道题目略有难度,要把所有的都删除,而不是保留一个,思路是:通过一个if判断来判断是否重复。