Given a sorted linked list, delete all duplicates such that each element appear only once.
For example,
Given 1->1->2
, return 1->2
.
Given 1->1->2->3->3
, return 1->2->3
.
List is just like the structure as above, set two pointers, one is pre the other one is cur, cur is the next node of pre. remember delete a node from list is just set pre.next = cur.next. Time complexity is O(n)
public ListNode deleteDuplicates(ListNode head) {
if(head == null)
return head;
ListNode pre = head;
ListNode cur = head.next;
while(cur!=null)
{
if(cur.val == pre.val)
pre.next = cur.next;
else
pre = cur;
cur = cur.next;
}
return head;
}