import java.util.*;
/*
* public class ListNode {
* int val;
* ListNode next = null;
* }
*/
public class Solution {
/**
*
* @param head ListNode类
* @return ListNode类
*/
public ListNode deleteDuplicates (ListNode head) {
// write code here
if (head == null || head.next == null) {
return head;
}
ListNode temp = head;
ListNode lastNode = null;
while (temp != null && temp.next != null) {
boolean isNeedRemoveSelf = false;
while (temp.next != null && temp.val == temp.next.val) {
//重复删除
isNeedRemoveSelf = true;
temp.next = temp.next.next;
}
if (isNeedRemoveSelf) {
if (lastNode == null) {
//删除头节点
head = head.next;
temp = head;
} else {
lastNode.next = temp.next;
temp = temp.next;
}
} else {
lastNode = temp;
temp = temp.next;
}
}
return head;
}
}