struct ListNode* removeElements(struct ListNode* head, int val){
struct ListNode* cur=head;
struct ListNode* newnode=NULL,*tail=newnode;
if(head==NULL) return head;
while(cur)
{
if(cur->val==val)
{
cur=cur->next;
}
else
{
if(newnode==NULL)
{
newnode=tail=cur;
}
else
{
tail->next=cur;
tail=tail->next;
}
cur=cur->next;
}
}
if(tail) tail->next=NULL;
return newnode;
}
用一个新节点newnode来连接不需要删除的节点