[LeetCode] Remove Duplicates from Sorted List II 链表

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.

 

Hide Tags
 Linked List
 

  控制好便可以了。
#include <iostream>
using namespace std;

/**
 * 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) {
        ListNode ret(0);
        ListNode * pslow=&ret,*pfast=head;
        while(1){
            if(pfast==NULL) break;
            bool dup = false;
            int curVal = pfast->val;
            pfast=pfast->next;
            while(pfast!=NULL&&pfast->val==curVal){
                dup = true;
                pfast=pfast->next;
            }
            if(dup==false){
                pslow->next = new ListNode(curVal);
                pslow=pslow->next;
            }
        }
        return ret.next;
    }
};

int main()
{
    return 0;
}

 

posted @ 2015-01-22 00:01  A_zhu  阅读(123)  评论(0编辑  收藏  举报