首页 > 其他 > 详细

Remove Duplicates from Sorted List II

时间:2015-07-09 00:55:35      阅读:255      评论:0      收藏:0      [点我收藏+]

题目描述

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

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!