题目
删除链表中等于给定值 val 的所有节点。
示例:
输入: 1->2->6->3->4->5->6, val = 6
输出: 1->2->3->4->5
分析
为了防止删除的是头节点,增加一个空的头节点,然后依次遍历就可以。如果当前节点是val,那么指向其的下一个节点。
ListNode* removeElements(ListNode* head, int val) {
if(head==NULL)
return NULL;
ListNode* phead=new ListNode(NULL);
phead->next=head;
ListNode *pcur=phead;
while(pcur->next!=NULL)
{
if(pcur->next->val==val)
{
pcur->next=pcur->next->next;
}
else
{
pcur=pcur->next;
}
}
phead=phead->next;
return phead;
}