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.
ListNode* deleteDuplicates(ListNode* head) {
if(NULL == head)
{
return NULL;
}
if(NULL == head->next)
{
return head;
}
ListNode* pre = head;
ListNode* pnext = pre->next;
ListNode* tmp;
while(pnext)
{
if(pnext->val == pre->val)
{
tmp = pnext;
pre->next = pnext->next;
pnext = pre->next;
free(tmp);
}
else
{
pre = pre->next;
pnext = pre->next;
}
}
return head;
}