ListNode* removeElements(ListNode* head, int val) {
ListNode* dummy=new ListNode(-1),*pre=dummy;
dummy->next=head;
while(pre->next){
if(pre->next->val==val){
pre->next=pre->next->next;
}else{
pre=pre->next;
}
}
return dummy->next;
}
给链表加入头结点有利于统一操作,很便利。通过pre->next的操作避免声明其它的变量。
ListNode* removeElements(ListNode* head, int val) {
if(!head) return NULL;
head->next=removeElements(head->next,val);
return head->val==val?head->next:head;
}