​LeetCode刷题实战82:删除排序链表中的重复元素 II

Java实现 LeetCode 82 删除排序链表中的重复元素 II(二) 82. 删除排序链表中的重复元素 II 给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。 示例 1: 输入: 1->2->3->3->4->4->5 输出: 1->2->5 示例 2: 输入: 1->1->1->2->3 输出: 2->3 /** * Definition for ... 阅读详情

算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试。所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 !

今天和大家聊的问题叫做 删除排序链表中的重复元素 II,我们先来看题面:

https://leetcode-cn.com/problems/remove-duplicates-from-sorted-list-ii/

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

题意

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

样例

示例 1:

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

示例 2:

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

解题

https://www.cnblogs.com/techflow/p/13235840.html

解法

前面说了这题的质量很高,这题是属于典型的解法赤裸裸,但是很多人就是写不出来的题,非常考察基本功。适合用在校招面试当中,如果我有幸去面试校招生, 我可能会选这道题。不存在算法会不会的问题,写不出来一定是基本功不够扎实。

链表已经有序了,那么相同的元素必然会排在一起,我们只需要将它们移除就可以了。但是说起来简单,要在链表当中实现并不容易。难点主要有两个,一个是链表增删节点的操作很多人不熟悉,尤其是像是C++这样的语言涉及指针,可能更不容易。另外一个难点就在题意当中,我们要做的不是去重,而是要所有重复的元素全部删除。

看起来似乎和去重没什么差别, 如果你真这么想,并且着手去实现,那么几乎可以肯定一定会遇到问题。

因为链表是单向的,假设你当前的指针是cur,当你发现cur这个指针的元素存在重复的时候,你需要连当前这个节点一起删除。我们都知道,单向链表是不能走回头路的,而删除节点,必须要用到前一个节点的指针。再加上判断元素重复需要用到的指针,会需要我们同时维护多个指针,增加代码的编码难度。

针对这个问题,我们有两种解决思路。第一种是我们不在原链表上处理,而是创建一个新的链表进行返回。所以我们要做的就不是删除元素,而是插入元素,只有发现当前元素不存在重复的时候才会插入链表。最后返回的也是一个全新的链表。

这当然是可以的,也是没有问题了,我第一次做这道题就是采取的这种措施。相比之下, 这种方法会容易一些,因为我们不需要判断太多的指针和位置,我贴一下当时的代码:

class Solution {
public:
    ListNode* deleteDuplicates(ListNode* head) {
          // 如果元素少于2个则直接返回
        if (head == nullptr || head->next == nullptr) return head;
        int cur = head->val;
          // 初始化
        bool flag = false;
        ListNode* ct = new ListNode(0);
        ListNode* pnt = ct;
        head = head->next;
          // 遍历元素
        while (head) {
            int hd = head->val;
               // 判断当前元素与之前的元素是否相等
            if (hd != cur) {
                   // 之前的元素没有出现重复
                if (!flag) {
                       // 把之前的元素存入链表
                    pnt->next = new ListNode(cur);
                       // 链表移动
                    pnt = pnt->next;
                }else flag = false;
                   // 更新之前的元素
                cur = hd;
            }else flag = true;
            head = head->next;
        }
          // 单独处理最后一个元素
        if (!flag) pnt->next = new ListNode(cur);
        return ct->next;
    }
};

虽然题目当中没有对解法做出限制,也没有规定我们必须要在原链表上进行处理,但是这种创建新链表的方法终归有绕开问题的嫌疑。所以我们还有第二种解法,就是直面问题,我们维护多个指针,判断当前位置的下一个元素是否构成重复。如果重复,则删除掉重复的部分。

正如我们之前所说的那样,在单向链表当中很难删除当前元素,所以我们判断下一个元素是否会构成重复。如果重复的话,进行删除要可行许多。这样也有一个问题就是,有可能链表的第一个元素就是重复的,我们没有办法找到第一个元素的上一个元素。针对这个问题,我们采用的方法是人为给它创造一个元素放在首元素之前。这样我们整个流程就可以串起来了,唯一的难点就是编码了。

我们仔细一些,写出代码还是可以的:

class Solution:
    def deleteDuplicates(self, head: ListNode) -> ListNode:
        # 创建一个新的元素放在链表头部,这样原本第一个元素就是头指针的下一个元素了
        node = ListNode()
        node.next = head
        # pnt指向新创建的元素
        pnt = node
        
        while pnt.next is not None:
            # cur指向当前位置的下一个位置
            # 我们要做的即判断cur这个指针的元素是否重复
            cur = pnt.next
            if cur.next is None:
                break
             
            # ptr指向cur的next
            ptr = cur.next
            # 如果ptr和cur相等,那么出现重复,我们需要跳过所有相等的元素
            if ptr is not None and ptr.val == cur.val:
                while ptr is not None and ptr.val == cur.val:
                    ptr = ptr.next
                pnt.next = ptr
            # 否则说明不重复,移动pnt
            else:
                pnt = pnt.next
                
        # 由于我们开始的时候人为添加了一个辅助元素
        # 返回的时候要将它去除
        return node.next

总结

这道题的算法很简单,我想大部分人都能想出解法来,但是要将解法实现并不太容易。这当中用到了很多小技巧,比如我们认为创建了一个新的头结点,比如我们将删除当前元素转化成了删除下一个元素等等。这些技巧虽然算不上什么,但是灵活使用,可以大大降低我们编码的复杂度,也正是因为这一点,这题的质量非常高,值得一做。

很多人非常讨厌涉及链表的问题,觉得链表很难操作,容易写错,但实际上这是基本功的很重要的一部分。很多公司喜欢考察候选人的基本功,提升这方面的能力对于我们应聘或者是工作非常有帮助。

好了,今天的文章就到这里,如果觉得有所收获,请顺手点个在看或者转发吧,你们的支持是我最大的动力。

上期推文:

LeetCode40-60题汇总,速度收藏!

LeetCode刷题实战61:旋转链表

LeetCode刷题实战62:不同路径

LeetCode刷题实战63:不同路径 II

LeetCode刷题实战64:最小路径和

LeetCode刷题实战66:加一

LeetCode刷题实战67:二进制求和

LeetCode刷题实战68:文本左右对齐

LeetCode刷题实战69:x 的平方根

LeetCode刷题实战70:爬楼梯

LeetCode刷题实战71:简化路径

LeetCode刷题实战72:编辑距离

LeetCode刷题实战73:矩阵置零

LeetCode刷题实战74:搜索二维矩阵

LeetCode刷题实战75:颜色分类

LeetCode刷题实战76:最小覆盖子串

LeetCode刷题实战77:组合

LeetCode刷题实战78:子集

LeetCode刷题实战79:单词搜索

LeetCode算法题82:删除排序链表中的重复元素 II解析 给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。 示例 1: 输入: 1->2->3->3->4->4->5 输出: 1->2->5 示例 2: 输入: 1->1->1->2->3 输出: 2->3 这个题主要是需要在出现重复时,将前一个不重复数的节点的next指向重复数字之后,... 阅读详情

相关推荐

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

给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。 示例1: 输入: 1->1->2 输出: 1->2 示例2: 输入: 1->1->2->3->3 输出: 1->2->3 /** * Definition for singly-linked list. * struct ListNode { * int...

专心扫地 392

删除链表中重复元素的问题

删除链表中重复元素的问题的双解法-带头链表和递归

m0_50987960的博客 6332

HALCON实战:用两个工业相机实现无缝大视野拼接(附完整代码与避坑指南)

本文详细介绍了使用HALCON软件实现双工业相机图像无缝拼接的完整解决方案,涵盖硬件配置、相机标定、坐标系转换和图像拼接等关键步骤。通过高精度标定和矩阵变换技术,可构建大视野检测系统,适用于液晶面板、PCB等工业检测场景,显著提升检测效率和精度。

weixin_29050513的博客 190

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

这几天刷了些链表的题目,大家不要害怕链表的指针出错,只要仔细分析几种会出现的情况,对每一种情况指针该如何移动搞清楚,就不会有问题。在解题的时候要利用双指针,三指针甚至4指针同时移动操作,并且有的时候可以利用双指针间距为k来反向遍历。例如:利用一次遍历删除倒数第k个节点等等。 给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。 示例 1: 输入: 1->1->2 ...

sunshine_lyn的博客 472

Mathcad在LLC谐振变换器设计中的公式推导实战

本文通过Mathcad软件,详细演示了LLC谐振变换器设计的核心公式推导实战。文章阐述了如何利用Mathcad作为“会思考的草稿纸”,从定义基本参数、应用基波近似法(FHA)模型,到逐步推导电压增益公式及确定工作边界频率(fmin, fmax),并展示了如何通过动态参数扫描进行优化设计,帮助电源工程师高效、直观地完成理论计算,为后续仿真与实现奠定坚实基础。

q1w3e5r7t9y的博客 293

流媒体学习之路(mediasoup)——simulcast 与 svc 简介(7)

流媒体学习之路(mediasoup)——simulcast 与 svc(7) 文章目录流媒体学习之路(mediasoup)——simulcast 与 svc(7)

qw225967的博客 7339

list元素求和_LeetCode刷题实战82:删除排序链表中的重复元素 II

算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试。所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 !今天和大家聊的问题叫做删除排序链表中的重复元素 II,我们先来看题面:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-li...

weixin_39614675的博客 81

伪傻瓜式安装sql server2008【附带安装包】

安装各式各样的软件无疑是学习过程中…较…为烦躁的一部分 木有醋 但还是开始吧 为什么这是伪呢? 因为刚开始天真无邪的我真的是傻瓜式安装(迷之自信),结果就B了(打开配置管理器的瞬间….一片空白) BaiduCloud分享 红领巾在何方?? Link链接:https://pan.baidu.com/s/1NZCxP0Y27dBPrgHoRWLDyQ...

EuniBoom的博客 6万+

LeetCode第82题_删除排序链表中的重复元素II

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

qq_40263592的博客 1410

从零构建DDS信号发生器:STM32 DAC与DMA的完美交响

本文详细介绍了如何利用STM32的DAC模块和DMA控制器从零构建高性能DDS信号发生器。通过深入解析DDS技术原理、STM32 DAC特性及DMA高效数据传输,提供了完整的波形生成算法、硬件电路设计和软件实现方案,帮助开发者掌握数字信号合成的核心技术。

tree8的博客 705

TikTok网页版X-bougs和_signature参数逆向实战:从断点到RPC调用的完整流程

本文详细解析了TikTok网页版X-bougs和_signature参数的逆向工程实战,从基础断点调试到高级RPC调用,完整还原加密参数的生成过程。通过工具链搭建、加密定位、核心突破及实战演练,帮助开发者深入理解TikTok的加密体系,并构建自动化签名系统。

weixin_28691003的博客 436

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

本文详细解析了 LeetCode 82 题「删除排序链表中的重复元素 II」的解法。通过使用哑节点(dummy node)统一处理头节点可能被删除的情况,采用双指针遍历链表,当发现重复元素时内层循环跳过所有重复节点。该算法时间复杂度 O(n),空间复杂度 O(1),高效解决了保留唯一元素的问题,并对比了与「删除重复元素 I」的不同处理逻辑。

mrjieke6的博客 977

【华为OD机试真题】45、 分糖果 | 机试真题+思路参考+代码解析(C++、Java、Py、JS)

### 🎃题目描述 >小明从糖果盒中随意抓一把糖果,每次小明会取出一半的糖果分给同学们。 >  当糖果不能平均分配时,小明可以选择从糖果盒中(假设盒中糖果足够)取出一个糖果或放回一个糖果。 >  小明最少需要多少次(取出、放回和平均分配均记一次),能将手中糖果分至只剩一颗。

正在更新最新华为OD机试2025B卷,提供OJ在线刷题 1289

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

leetcode 82. 删除排序链表中的重复元素 II 题目描述 给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。 示例 1: 输入: 1->2->3->3->4->4->5 输出: 1->2->5 示例 2: 输入: 1->1->1->2->3 输出: 2->3 解题思路 这...

EngineerHe的博客 1920

零基础快速学习 ABAP 读者意见反馈和下一步写作计划表

大家在学习教程过程中,如果有任何关于 SAP ABAP 开发方面想了解的内容,可以直接在教程各篇文章下评论留言,我会将大家的意见统一汇总到下面的表格,作为我更新教程的内容参考来源之一。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 4268

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

算法leetcode|82. 删除排序链表中的重复元素 II(rust重拳出击)

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

二当家的白帽子 1780

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

82. 删除排序链表中的重复元素 II【 力扣(LeetCode) 】

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

yyh520025的博客 942

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

LeetCode刷题笔记 82. 删除排序链表中的重复元素 II

82. 删除排序链表中的重复元素 II题目要求题解递归版迭代版 题目要求 给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。 示例 1: 输入: 1->2->3->3->4->4->5 输出: 1->2->5 示例 2: 输入: 1->1->1->2->3 输出: 2->3 题...

g534441921的博客 264

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

Description 给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。 示例 1: 输入: 1->2->3->3->4->4->5 输出: 1->2->5 示例 2: 输入: 1->1->1->2->3 输出: 2->3 来源:力扣(LeetCode) 链接:https://...

sunlanchang的博客 547

LeetCode Java刷题笔记—82. 删除排序链表中的重复元素 II

LeetCode Java刷题笔记—82. 删除排序链表中的重复元素 II

终生学习践行者 1624

【刷题笔记4】LeetCode 82. 删除排序链表中的重复元素 II (链表处理经典题目)

系列索引:【刷题笔记0】系列目录索引(持续更新 & 推荐收藏) 本题题目:LeetCode 82. 删除排序链表中的重复元素 II 分类: 链表 难度:中等 老规矩,先上AC图: 题目: 169. 多数元素82. 删除排序链表中的重复元素 II169. 多数元素(点击直达原网站) 示例 1: 输入:head = [1,2,3,3,4,4,5] 输出:[1,2,5] 示例 2: 输入:head = [1,1,1,2,3] 输出:[...

12 26 25 的博客 830

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

Leetcode[链表] 61. 旋转链表审题代码实现反思 审题 给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数。 示例 1: 输入: 1->2->3->4->5->NULL, k = 2 输出: 4->5->1->2->3->NULL 解释: 向右旋转 1 步: 5->1->2->3->4->NULL 向右旋转 2 步: 4->5->1->2->3->

weixin_45415929的博客 1022

leetcode82:删除链表中的重复元素II

leetcode82:删除链表中的重复元素II

qq_36070104的博客 731

Leetcode:链表——删除有序链表中的重复元素

Java数据结构——链表:删除有序链表中的重复元素

m0_69438595的博客 1622
上一篇: 风靡全球的英雄联盟手游,竟然没有国服,只能教你玩国际服了...
下一篇: Python3.9 发布!到底有哪些新特性?
编程IT圈
博客等级 码龄6年 1130粉丝 544原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值