Thursday, July 31, 2014

Remove Duplicates from Sorted 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.

Solution :
Delete intermediate nodes that are same as the previous node. This works because the list is already sorted.

Code :
class Solution {
public:
ListNode *deleteDuplicates(ListNode *head) {
ListNode *p = head;
if (p==NULL) return NULL;
while(p->next!=NULL){
if (p->val == p->next->val) p->next = p->next->next;
else
p=p->next;
}
return head;
}
};

No comments:

Post a Comment