[leetcode] 【链表】 82. Remove Duplicates from Sorted List II

原创 2016年05月30日 17:28:26

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.


题意

把链表中含有重复值元素的节点删掉,和Remove Duplicates from Sorted List
这一题的区别是这里要把重复的全部删除,比如
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 head;
        ListNode newhead(-1);
        newhead.next=head;
        ListNode *prev=&newhead;
        ListNode *cur=head;
        while(cur)
        {
            bool isDuplicate=false;
            while(cur->next!=NULL&&cur->val==cur->next->val)
            {
                isDuplicate=true;
                ListNode *temp=cur;
                cur=cur->next;
                delete temp;
            }
            if(isDuplicate)
            {
                ListNode *temp=cur;
                cur=cur->next;
                prev->next=cur;
                delete temp;
            }
            else
            {
                prev=prev->next;
                cur=cur->next;
            }
        }
        return newhead.next;
    }
};


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

leetcode:82. Remove Duplicates from Sorted List II(Java)解答

转载请注明出处:z_zhaojun的博客 原文地址:http://blog.csdn.net/u012975705 题目地址:https://leetcode.com/problems/reve...
  • u012975705
  • u012975705
  • 2015年12月27日 00:18
  • 1367

Remove Duplicates from Sorted List II -- LeetCode

原题链接: http://oj.leetcode.com/problems/remove-duplicates-from-sorted-list-ii/  这道题跟Remove Duplicates...
  • linhuanmars
  • linhuanmars
  • 2014年04月24日 08:33
  • 10649

82. Remove Duplicates from Sorted List II Leetcode Python

Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numb...
  • hyperbolechi
  • hyperbolechi
  • 2015年02月05日 11:48
  • 948

leetcode || 82、Remove Duplicates from Sorted List II

problem: Given a sorted linked list, delete all nodes that have duplicate numbers, leaving onl...
  • hustyangju
  • hustyangju
  • 2015年04月13日 16:47
  • 800

Remove Duplicates from Sorted List -- LeetCode

原题链接: http://oj.leetcode.com/problems/remove-duplicates-from-sorted-list/  这是一道比较简单的链表操作的题目,要求是删去有序...
  • linhuanmars
  • linhuanmars
  • 2014年04月23日 11:25
  • 8721

【LeetCode with Python】 Remove Duplicates from Sorted List II

Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numb...
  • nerv3x3
  • nerv3x3
  • 2014年08月29日 18:36
  • 2686

Remove Duplicates from Sorted Array II -- LeetCode

原题链接: http://oj.leetcode.com/problems/remove-duplicates-from-sorted-array-ii/  这道题跟Remove Duplica...
  • linhuanmars
  • linhuanmars
  • 2014年04月23日 08:39
  • 10694

LeetCode_Remove Duplicates from Sorted List II

LeetCode_Remove Duplicates from Sorted List II
  • shengno1
  • shengno1
  • 2015年04月15日 00:09
  • 1107

Leetcode_83_Remove Duplicates from Sorted List

本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/41728739 Given a sorted linked...
  • pistolove
  • pistolove
  • 2014年12月04日 19:20
  • 1505

[LeetCode]80.Remove Duplicates from Sorted Array II

【题目】 Remove Duplicates from Sorted Array II  Total Accepted: 4460 Total Submissions: 15040My Sub...
  • SunnyYoona
  • SunnyYoona
  • 2014年01月15日 09:51
  • 1750
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[leetcode] 【链表】 82. Remove Duplicates from Sorted List II
举报原因:
原因补充:

(最多只允许输入30个字)