ListNode *deleteDuplicates(ListNode *head) //Remove Duplicates from Sorted List II
{
if(head==NULL||head->next==NULL) return head;
ListNode* cur=head,*pre;
ListNode dummy(INT_MIN);
pre=&dummy;
while (cur!=NULL)
{
bool duplicate=false;
while (cur->next!=NULL&&cur->val==cur->next->val)
{
duplicate=true;
ListNode* tmp=cur;
cur=cur->next;
delete tmp;
}
if (duplicate==true)
{
ListNode* tmp=cur;
cur=cur->next;
delete tmp;
continue;
}
pre->next=cur;
cur=cur->next;
pre=pre->next;
}
pre->next=cur;
return dummy.next;
}