首页 > 代码库 > Remove Duplicates from Sorted List II

Remove Duplicates from Sorted List II

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  * Definition for singly-linked list. 3  * public class ListNode { 4  *     int val; 5  *     ListNode next; 6  *     ListNode(int x) { 7  *         val = x; 8  *         next = null; 9  *     }10  * }11  */12 public class Solution {13     public ListNode deleteDuplicates(ListNode head) {14         ListNode header = new ListNode(Integer.MAX_VALUE);15         header.next = head;16         ListNode cur = header, pre = header.next;17         header.next = null;18         while(pre != null){19             ListNode tmp = pre;20             while(pre != null && pre.val == tmp.val) pre = pre.next;21             if(tmp.next == pre){22                 cur.next = tmp;23                 cur = cur.next;24                 cur.next = null;25             }26         }27         return header.next;28     }29 }

 

Remove Duplicates from Sorted List II