题目描述:删除链表中等于给定值val
的所有节点。
样例
给出链表 1->2->3->3->4->5->3
, 和 val = 3
, 你需要返回删除3之后的链表:1->2->4->5
。
做题思路:用指针指向结点,从开始结点一个一个找,如果该结点的值等于输入的值,那么对该结点进行覆盖。
关键代码: ListNode *removeElements(ListNode *head, int val) {
// Write your code here
ListNode *dummy=new ListNode(0);
dummy->next=head;
head=dummy;
while(head->next!=NULL)
{ if(head->next->val==val)
{head->next=head->next->next;
}
else { head=head->next;}
}
return dummy->next;
}
做题感想:最开始做链表的题就先做的这道题,当时自己写写不出来,看了看ppt上的程序,觉得理解了再开始写的,写了这些题之后,再回过头在看这个题,就觉得真的是熟能生巧。