• 【力扣 092】82. 删除排序链表中的重复元素 II


    82. 删除排序链表中的重复元素 II

    给定一个已排序的链表的头 head , 删除原始链表中所有重复数字的节点,只留下不同的数字 。返回 已排序的链表 。

    示例 1:


    输入:head = [1,2,3,3,4,4,5]
    输出:[1,2,5]
    示例 2:


    输入:head = [1,1,1,2,3]
    输出:[2,3]
     

    提示:

    链表中节点数目在范围 [0, 300] 内
    -100 <= Node.val <= 100
    题目数据保证链表已经按升序 排列

    来源:力扣(LeetCode)
    链接:https://leetcode.cn/problems/remove-duplicates-from-sorted-list-ii
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    代码实现:

    /**
     * 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 *dumy = new ListNode(0), *pre = dumy, *p = head;
            dumy->next = head;
            while(p)
            {
                while(p->next && p->val == p->next->val)
                    p = p->next;
                if(pre->next != p)
                {
                    pre->next = p->next;
                    p = pre->next;
                }
                else
                {
                    pre = pre->next;
                    p = p->next;
                }
            }
            return dumy->next;  
        }
    };
  • 相关阅读:
    HTML学习 day04
    HTML学习 day03
    HTML学习 day02
    原生Js监听普通dom尺寸变化
    JavaScript-获取地址栏参数
    Window 下 MySQL 环境的安装
    JavaScript 中的12种循环遍历方法
    前端PS常用切图技巧
    requirejs教程(一):基本用法
    seajs教程(一):基本用法
  • 原文地址:https://www.cnblogs.com/sunbines/p/16328555.html
Copyright © 2020-2023  润新知