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

Remove Duplicates from Sorted List II

时间:2015-07-09 00:56:36      阅读:127      评论:0      收藏:0      [点我收藏+]

标签:lintcode

题目描述

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

Example

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

链接地址

http://www.lintcode.com/en/problem/remove-duplicates-from-sorted-list-ii/

解法

 ListNode * deleteDuplicates(ListNode *head) {
        // write your code here
        if (head == NULL) {
            return head;
        }
        ListNode *dummyNode = new ListNode();
        dummyNode->next = head;
        ListNode *pre = dummyNode;
        ListNode *cur = pre->next;
        while (cur!= NULL && cur->next!= NULL) {
            if (cur->val == cur->next->val) {
                ListNode *temp = cur;
                while (temp != NULL && temp->next != NULL && temp->val == temp->next->val) {
                   ListNode *del = temp->next;
                   temp->next = del->next;
                   delete del;
                }
               pre ->next = temp->next;
               cur = pre->next;
               delete temp;
            } else {
                pre = cur;
                cur = cur->next;
            }
        }
        return dummyNode->next;
    }

版权声明:本文为博主原创文章,未经博主允许不得转载。

Remove Duplicates from Sorted List II

标签:lintcode

原文地址:http://blog.csdn.net/richard_rufeng/article/details/46809869

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