Given a sorted linked list, delete all duplicates such that each element appear only once.
For example,
Given1->1->2, return1->2.
Given1->1->2->3->3, return1->2->3.
/**
* 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;
ListNode newHead = new ListNode(Integer.MIN_VALUE);
newHead.next = head;
ListNode pre = head;
ListNode node = head.next;
head.next = null;
while (node!=null){
ListNode temp = node.next;
if (node.val==pre.val){
node = temp;
}else {
node.next = pre.next;
pre.next = node;
pre = pre.next;
node = temp;
}
}
return newHead.next;
}
}