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

删除链表中的元素

作者: 李清依 | 来源:发表于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