LeetCode – Remove Duplicates from Sorted List II (Java)

來源:互聯網
上載者:User

標籤:

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.

 

解題思路:

對比I,這道題要求不保留任何重複的節點。所以需要一個index記錄當前已經保留的節點的末端,然後用另一個節點去遍曆,並在這個過程中對重複值和新值進行處理。

痛點在於對corner cases的處理。剛開始刷題不久,還沒有養成預先寫test的習慣,所以在這些特例上,花了很多時間。

Corner Case:[1,2,2],[0,1,2,2,3,4],[1,1],[1],[1,1,2,2]

 1         if(head!=null){ 2              ListNode c1 = new ListNode(head.val-1); 3              c1.next = head; 4              ListNode re = c1, c2 = head; 5              int count = 0, temp = c1.next.val; 6               7              while(c2!=null){ 8                  if(temp!=c2.val && count>1){ 9                      c1.next = c2;  10                      temp = c2.val;11                      count = 1;12                  }else if(temp!=c2.val && count==1){13                      c1 = c1.next;14                      temp = c2.val;15                      count = 1;16                  }else 17                  count ++;18                  c2 = c2.next;              19          }20              if(count > 1) c1.next = null;21              return re.next;         22      }23          return null;

 

LeetCode – Remove Duplicates from Sorted List II (Java)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.