82. Remove Duplicates from Sorted List II

来源:互联网 发布:免费个人域名注册 编辑:程序博客网 时间:2024/06/18 01:40

Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numbers from the original list.

For example,
Given 1->2->3->3->4->4->5, return 1->2->5.
Given 1->1->1->2->3, return 2->3.

class Solution {public:    ListNode* deleteDuplicates(ListNode* head)     {        ListNode * p,*q;        ListNode *dummy=new ListNode(-1);        dummy->next=head;        ListNode* s=dummy;        while(s->next)        {            p=s->next;            int flag=1;            while(p->next&&p->val==p->next->val)            {                flag=0;               q=p->next;               p->next=q->next;            }            if(flag)                s=s->next;            else                s->next=p->next;        }        return dummy->next;    }};
0 0