class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}
public
class Solution {
public
ListNode deleteDuplication(
ListNode pHead) {
if(pHead == null)
return null;
ListNode f = pHead;
ListNode pre = null;
while (f != null) {
ListNode next = f.
next;
if(
next == null)
return pHead;
if(f.val !=
next.val) {
pre = f;
f = f.
next;
}
else {
while (
true) {
if(
next.
next == null)
break;
if(
next.val ==
next.
next.val)
next =
next.
next;
else break;
}
if(pre == null) {
pHead =
next.
next;
f =
next.
next;
}
else {
pre.
next =
next.
next;
f =
next.
next;
}
}
}
return pHead;
}
public static void main(
String[] args) {
ListNode l1 = new
ListNode(
1);
ListNode l2 = new
ListNode(
1);
ListNode l3 = new
ListNode(
1);
// ListNode l4 = new
ListNode(
1);
// ListNode l5 = new
ListNode(
4);
// ListNode l6 = new
ListNode(
4);
// ListNode l7 = new
ListNode(
5);
l1.
next = l2;
l2.
next = l3;
// l3.
next = l4;
// l4.
next = l5;
// l5.
next = l6;
// l6.
next = l7;
ListNode listNode = (new
Solution()).deleteDuplication(l1);
while (listNode != null) {
System.out.print(listNode.val +
" ");
listNode = listNode.
next;
}
}
}