class Solution {
public:
ListNode* removeElements(ListNode* head, int val) {
if(head==NULL) return NULL;
ListNode *head1,*p,*pre;
head1=head;
while(head1&&head1->val==val)
head1=head1->next; //先找出头结点
if(head1==NULL) return nullptr;
p=head1;
pre=head1;
while(p)
{
if(p->val!=val)
{
pre=p; //前一个节点必须保留
p=p->next;
}
else //千万不要用if 不等于
{
if(p->next)
{
pre->next=p->next;
p=p->next;
}
else {pre->next=NULL;return head1;} //下一个为空就跳出;
}
}
return head1;
}
};
public:
ListNode* removeElements(ListNode* head, int val) {
if(head==NULL) return NULL;
ListNode *head1,*p,*pre;
head1=head;
while(head1&&head1->val==val)
head1=head1->next; //先找出头结点
if(head1==NULL) return nullptr;
p=head1;
pre=head1;
while(p)
{
if(p->val!=val)
{
pre=p; //前一个节点必须保留
p=p->next;
}
else //千万不要用if 不等于
{
if(p->next)
{
pre->next=p->next;
p=p->next;
}
else {pre->next=NULL;return head1;} //下一个为空就跳出;
}
}
return head1;
}
};