题解 | #删除有序链表中重复的元素-II#

删除有序链表中重复的元素-II

https://www.nowcoder.com/practice/71cef9f8b5564579bf7ed93fbe0b2024

class Solution {
public:
    ListNode* deleteDuplicates(ListNode* head) {
        if(head==nullptr||head->next==nullptr) return head;
        auto a=head;
        auto c=new ListNode(-1);
        auto b=c;
        int i=0;
        while(a->next!=nullptr)
        {
            if(a->val==a->next->val&&a->next!=nullptr)
            {
                while(a->val==a->next->val&&a->next!=nullptr)
                {
                    a=a->next;
                }
                if(a->next!=nullptr) {a=a->next;i--;}
                i++;
            }
            else
            {
                c->next=a;
                c=c->next;
                a=a->next;
                i=0;
            }
        }
        if(i==0)
        {
            c->next=a;
            c=c->next;
        }
        c->next=nullptr;
        return b->next;
    }
};

由于不会用纯指针方法来解决,思考了一下还是修改了普通思路,搞到了挺久的。主要是用例{1,1}和{1,1,2}的思考那部分,让我有点焦灼。(最后要返回nullptr,这也挺烦的)

全部评论

相关推荐

投递字节跳动等公司10个岗位
点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务