[LeetCode][Java] Remove Duplicates from Sorted List II

來源:互聯網
上載者:User

標籤:leetcode   java   remove duplicates fr   

題意:

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.

題目:

給定一個有序鏈表,刪除所有重複的節點,剩餘都是原鏈表中的不相同的節點元素。

比如,

給定1->2->3->3->4->4->5 ,返回1->2->5.

給定1->1->1->2->3 ,返回2->3.

演算法分析:

設定前後雙指標,後指標遇到重複元素就一直遍曆直到重複的結尾,之後前指標指向後指標,這樣就略過所有的重複元素。

AC代碼:

<span style="font-family:Microsoft YaHei;font-size:12px;">public class Solution {    public  ListNode deleteDuplicates( ListNode head)     {        ListNode pre;        ListNode cur;        ListNode newhead = new ListNode(0);        newhead.next=head;        if(head==null||head.next==null)        return head;        pre=newhead;        cur=head;        while(cur.next!=null)        {        if(cur.next.val==cur.val)//處理頭幾個元素相同的例子 如1 1 1 2 3 4         {        while(cur.next.val==cur.val)        {        cur=cur.next;        if(cur.next==null)//處理末尾幾個元素相同的例子 1 2 3 4 5 5 5        break;        }        pre.next=cur.next;        //pre=pre.next;        cur=cur.next;        if(cur==null)        break;        }        else//處理頭幾個元素不相同的例子 1 2 3 4 5        {        pre=pre.next;        cur=cur.next;        }        }    return newhead.next;    }}</span>


著作權聲明:本文為博主原創文章,轉載註明出處

[LeetCode][Java] 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.