class Solution {
public:
ListNode *deleteDuplicates(ListNode* head)
{
if(head==nullptr)
return head;
for(ListNode* prev=head,*cur=head->next; cur; cur=prev->next)
{
if(prev->val == cur->val)
{
prev->next=cur->next;
delete cur;
}
else
prev=cur;
}
return head;
}
};
Remove Duplicates from Sorted List II
Given 1->2->3->3->4->4->5,retrun 1->2->5
class Solution{
public:
ListNode *deleteDuplicates(ListNode *head)
{
if(!head || !head->next)
return head;
ListNode* p=head->next;
if(head->val == p->val)
{
while(p && head->val == p->val)
{
ListNode *tmp=p;
p=p->next;
delete tmp;
}
delete head;
return deleteDuplicates(p);
}
else
{
head->next=deleteDuplicates(head->next);
return head;
}
}
};