https://oj.leetcode.com/problems/remove-duplicates-from-sorted-list-ii/
http://blog.csdn.net/linhuanmars/article/details/24389429
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) {
* val = x;
* next = null;
* }
* }
*/
public class Solution {
public ListNode deleteDuplicates(ListNode head) {
if (head == null || head.next == null)
return head;
// 1 -> 2 -> 2 -> 3
// pre test testnext next
ListNode pre = null;
ListNode test = head;
ListNode testnext = test.next;
boolean deletetest = false;
ListNode newhead = null;
while (test != null)
{
if (testnext != null && test.val == testnext.val)
{
// Delete testnext;
deletetest = true;
ListNode next = testnext.next;
test.next = next;
testnext.next = null;
testnext = next;
}
else if (deletetest)
{
// Delete test
deletetest = false;
if (pre != null)
{
pre.next = testnext;
}
test.next = null;
test = testnext;
if (test != null)
testnext = test.next;
}
else
{
pre = test;
if (newhead == null)
newhead = test;
test = testnext;
if (test != null)
testnext = test.next;
}
}
return newhead;
}
}[LeetCode]82 Remove Duplicates from Sorted List II
原文:http://7371901.blog.51cto.com/7361901/1599020