Tuesday, September 3, 2013

Remove Duplicates from Sorted Link List

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.

  ListNode *deleteDuplicates(ListNode *head) {
    if(!head  || !(head->next))
  return head;

 ListNode *retAdd = NULL;
 ListNode *prev = NULL;
 while(head)
 {
  if(!prev)
  {
   prev = head;
   retAdd = head;
  }
  else
  {
   if(head->val != prev->val)
   {
     prev->next = head;
     prev = prev->next;
   }
  }

  head = head->next;
  prev->next = NULL;
 }

 return retAdd;
}

No comments:

Post a Comment