zoukankan      html  css  js  c++  java
  • Leetcode82. Remove Duplicates from Sorted List II删除排序链表中的重复元素2

    给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。

    示例 1:

    输入: 1->2->3->3->4->4->5 输出: 1->2->5

    示例 2:

    输入: 1->1->1->2->3 输出: 2->3

    新设置一个头节点

    class Solution {
    public:
        ListNode* deleteDuplicates(ListNode* head)
        {
            if(head == NULL)
                return head;
            ListNode* newHead = new ListNode(0);
            newHead ->next = head;
            ListNode* last = newHead;
            ListNode* current = head;
            ListNode* next = head ->next;
            while(next)
            {
                if(next ->val == current ->val)
                {
                    while(next && next ->val == current ->val)
                    {
                        next = next ->next;
                    }
                    if(next)
                    {
                        current = next;
                        next = next ->next;
                        last ->next = current;
                    }
                    else
                        last ->next = next;
                }
                else
                {
                    last ->next = current;
                    last = last ->next;
                    current = next;
                    next = next ->next;
                }
            }
            return newHead ->next;
        }
    };
  • 相关阅读:
    java中的单例模式
    数组的冒泡排序
    2019年总结—即将而立之年的90后
    圣诞节开启博客之旅
    分布式多线程的Lock示例
    抽象工厂模式
    观察者模式
    建造者模式
    外观模式(Facade)
    模板方法模式
  • 原文地址:https://www.cnblogs.com/lMonster81/p/10433854.html
Copyright © 2011-2022 走看看