美文网首页一起来刷算法题
删除链表中重复的结点

删除链表中重复的结点

作者: cherryleechen | 来源:发表于2019-05-07 13:13 被阅读0次

    时间限制:1秒 空间限制:32768K

    题目描述

    在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。例如,链表1->2->3->3->4->4->5处理后为1->2->5。

    我的代码

    /*
    struct ListNode {
        int val;
        struct ListNode *next;
        ListNode(int x) :
            val(x), next(NULL) {
        }
    };
    */
    class Solution {
    public:
        ListNode* deleteDuplication(ListNode* pHead)
        {
            if(pHead==nullptr || pHead->next==nullptr)
                return pHead;
            ListNode* cur=pHead->next;
            if(cur->val==pHead->val){
                while(cur->next && cur->next->val==pHead->val)
                    cur=cur->next;
                pHead=deleteDuplication(cur->next);
            }
            else
                pHead->next=deleteDuplication(cur);
            return pHead;
        }
    };
    

    运行时间:5ms
    占用内存:412k

    相关文章

      网友评论

        本文标题:删除链表中重复的结点

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