82. 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 class Solution {
 2     public ListNode deleteDuplicates(ListNode head) {
 3         ListNode fakehead= new ListNode(0);
 4         fakehead.next = head;
 5         ListNode pre = fakehead;
 6         ListNode cur =head;
 7         while(cur!=null){
 8             while(cur.next!=null&&cur.val == cur.next.val)
 9                 cur = cur.next;
10             if(pre.next !=cur)
11                 pre.next = cur.next;
12             else 
13                 pre = pre.next;
14             cur = cur.next;
15         }
16         return fakehead.next;
17     }
18 }

 

posted @ 2017-10-25 10:06  乐乐章  阅读(198)  评论(0编辑  收藏  举报