leetcode || 82、Remove Duplicates from Sorted List II

來源:互聯網
上載者:User

標籤:leetcode   單鏈表   雙指標   演算法   遍曆   

problem:

Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numbers from the original list.

For example,
Given 1->2->3->3->4->4->5, return 1->2->5.
Given 1->1->1->2->3, return 2->3.

Hide Tags Linked List題意:將單鏈表的重複元素刪去

thinking:

(1)單鏈表順序遍曆,時間複雜度O(n),這道題不難

(2)我採用雙指標法遍曆,用前驅指標儲存最近出現的非重複結點,方便重複資料刪除的結點,一次提交AC

code:

/** * Definition for singly-linked list. * struct ListNode { *     int val; *     ListNode *next; *     ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public:    ListNode *deleteDuplicates(ListNode *head) {        if(head==NULL || head->next==NULL)            return head;        if(head->val==head->next->val)//從頭結點開始出現重複元素        {            ListNode *tmp=head;;            while(tmp->next && tmp->val==tmp->next->val)                {                    tmp=tmp->next;                }            return deleteDuplicates(tmp->next);            }        ListNode *p=head;//左指標        ListNode *q=p; //右指標        ListNode *pre=p; //前驅指標        while(p!=NULL)        {            q=p->next; //右指標初始化            if(q==NULL)                return head;            if(p->val!=q->val) //不相等,同時前進            {                pre=p;  //前驅指標儲存最後一次出現的非重複結點                p=p->next;                q=q->next;            }            else //相等 ,右指標前進            {                while(q!=NULL && q->val==p->val)                {                    q=q->next;                }                pre->next=q;  //重複資料刪除元素                p=q;        //更新左指標            }        }        return head;                    }};



leetcode || 82、Remove Duplicates from Sorted List II

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.