82. Remove Duplicates from Sorted List II
QuestionEditorial Solution
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
.
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
public class Solution {
public ListNode deleteDuplicates(ListNode head) {
if(head==null||head.next==null)
return head;
ListNode n=new ListNode(0);
n.next=head;
ListNode pre=n;
ListNode current=n.next;
while(current!=null){
ListNode post=current.next;
if(post==null)
break;
if(post.val==current.val){
while (post!=null&&post.val==current.val)
{
post=post.next;
}
pre.next=post;
current=post;
}
else{
pre=current;
current=post;
}
}
return n.next;
}
}