用到了3个指针,一个哑节点;
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) return null;
if(head.next == null) return head;
ListNode first = head.next;
ListNode later = head;
ListNode pre = new ListNode(-1001);
pre.next = later;
ListNode result = pre;
while(first != null){
while(first.val != later.val){
pre = pre.next;
later = later.next;
if(first.next == null){
later.next = null;
return result.next;
}
first = first.next;
}
while(first.val == later.val){
if(first.next == null){
pre.next = null;
return result.next;
}
first = first.next;
}
later = first;
pre.next = later;
if(first.next == null){
later.next = null;
return result.next;
}
first = first.next;
}
return result.next;
}
}