452. 删除链表中的元素
删除链表中等于给定值val
的所有节点。
您在真实的面试中是否遇到过这个题?
Yes
样例
给出链表
1->2->3->3->4->5->3
, 和 val =
3
, 你需要返回删除3之后的链表:1->2->4->5
。
思路:很简单的一道题目,但由于没有保存节点导致一直没AC成功,所以以后一定要记住啊!
AC代码
class Solution {
public:
/*
* @param head: a ListNode
* @param val: An integer
* @return: a ListNode
*/
ListNode * removeElements(ListNode * head, int val) {
// write your code here
if(head == NULL)
return NULL;
while(head->val == val){
head = head->next;
if(head == NULL)
return NULL;
}
ListNode *pre=head;//需设置一个新的节点保存head
while(pre->next!=NULL){
if(val==pre->next->val){
pre->next=pre->next->next;
}else
{pre=pre->next;}
}
return head;
}
};
网友评论