美文网首页
删除链表中的元素

删除链表中的元素

作者: 李清依 | 来源:发表于2017-12-18 16:23 被阅读0次

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;
    }
};

相关文章

网友评论

      本文标题:删除链表中的元素

      本文链接:https://www.haomeiwen.com/subject/ykymwxtx.html