LeetCode(M) Remove Duplicates from Sorted List II

来源:互联网 发布:ibm蓝云计算平台 编辑:程序博客网 时间:2024/06/14 17:56

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.

/** * Definition for singly-linked list. * struct ListNode { *     int val; *     ListNode *next; *     ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public:    ListNode* deleteDuplicates(ListNode* head) {        if(!head) return NULL;        ListNode *pre=new ListNode(-1),*p,*q;        pre->next=head;        p=pre;        while(p->next){            q=p->next;            while(q->next&&q->val==q->next->val)                    q=q->next;            if(q!=p->next){                p->next=q->next;            }            else p=p->next;        }        return pre->next;    }};
0 0
原创粉丝点击