Input: 1->2->3->3->4->4->5
Output: 1->2->5
思路:
比如1-2-3-3-4-5;
比如;我们用p指针,当p.next.val==p.next.next.val;说明有重复值;此时p指向2;然后用一个val保存当前重复值;从第一个重复元素开始判断;然后p.next指向p.next.next;
public ListNode deleteDuplicates(ListNode head) {
if(head == null || head.next == null)
return head;
ListNode dummy = new ListNode(0);
dummy.next = head;
head = dummy;
while (head.next != null && head.next.next != null) {
if (head.next.val == head.next.next.val) {
int val = head.next.val;
while (head.next != null && head.next.val == val) {
head.next = head.next.next;
}
} else {
head = head.next;
}
}
return dummy.next;
}