码迷,mamicode.com
首页 > 其他好文 > 详细

[LeetCode] Remove Duplicates from Sorted List II

时间:2014-08-14 01:01:07      阅读:230      评论:0      收藏:0      [点我收藏+]

标签:des   style   blog   color   io   for   div   amp   

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 == NULL)
            return NULL;
        ListNode *p = head, *h = head,*pre;
        while( h != NULL && h->next != NULL && h->val == h->next->val){
            while(p!= NULL && p->next != NULL && p->val == p->next->val){
                p = p->next;
            }//end while
            p = p->next;
            h = p;
        }//end while
        if(h==NULL)
            return h;
        else{
           pre = h;    
           p = h->next;
        }
        bool flag = 0;
        while(p!= NULL && p->next != NULL ){
            if(p->val != p->next->val && flag == 0){
                pre = p;
                p = p->next;
                flag = 0;
            }else if(p->val != p->next->val && flag == 1){
                p = p->next;
                pre->next = p;
                flag = 0;
            }else{
                p = p->next;
                flag = 1;
            } 
        }
        if(p!=NULL && flag == 1){
           pre->next = NULL;
        }
          
        return h;
    }//end func
};

 

[LeetCode] Remove Duplicates from Sorted List II,布布扣,bubuko.com

[LeetCode] Remove Duplicates from Sorted List II

标签:des   style   blog   color   io   for   div   amp   

原文地址:http://www.cnblogs.com/Xylophone/p/3911386.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!