不带头节点的链表有哪些缺点_14. 删除链表中重复的结点

删除链表中重复的结点

题目描述

在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5

写链表中我们知道对于单链表访问最大的缺点就是只能单向,从前向后,所以我们删除也是一样,删除当前就得知道当前的上一个节点,那么我们这里采用指针记录的方式。

方法1(粗暴)

我们采用最容易想到的方法,不用考虑时间效率与空间效率问题,就直接用遍历,用一个哈希表结构来记录每个节点对应的值在节点中出现了几次,统计完成后,然后通过哈希表中如果出现次数为大于等于2,再用两个指针一个前一个后开始找对应的值就行了,如果后一个指针指向的节点的值为哈希表中出现次数大于等于2的数,那么前一个指针指向后一个指针的next然后删除后一个指针所指向的节点,让后一个指针重新指向前一个指针的next,就这样就可以完成删除。

虽然这个方法可以,但是时间复杂度为O(N), 空间复杂度为一个哈希表的结构,所以采用这种不是最佳选择。

方法2(三指针法)

采用三个指针来进行遍历,同时删除重复的节点,因为是有序的链表,我们就可以确定,重复的元素肯定是在一块链接,所以我们就可以,用三指针,我们这里就叫

pre、cur、nex 分别代表的是前中后三个指针,我们在考虑的情况中,如果头节点开始就重复,我们就处理很起来多了一种情况就需要额外处理,所以我们添加一个头节点,变成带头节点,保证了头节点开始不会重复,那么我们就可以让开头是pre指向带头的节点,cur指向pre的next,nex指向cur的next。

接下来我们就可以看cur是否和nex相等,相等就让nex继续向下走,不相等然后再处理删除,cur开始到nex中间节点都是要删除的(包含cur指向,不包含nex指向)删除,就用到了pre,删除完成让pre指向cur就可以了。

如果cur值与nex值不相等,那么就可以三个指针各自往前移动一个。

注:在实现时,自己添加一个头结点,把头结点链接到链表上,方便。

260e195891bb2de278d89c66591ef28d.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/513714.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于 Flutter 的 Web 渲染引擎「北海」正式开源!

简介: 阿里巴巴历时 3 年自研开发的 Web 渲染引擎北海(英文名:Kraken)正式开源,致力打造易扩展,跨平台,高性能的渲染引擎,并已在优酷、大麦、天猫等业务场景中使用。 作者 | 染陌 来…

“倚天”一出,谁与争锋?阿里发布首颗云芯片倚天 710,死磕自研芯

作者 | 贾凯强、伍杏玲 出品 | CSDN云计算(ID:CSDNcloud)10 月 19 日,2021 年云栖大会正式拉开帷幕。达摩院院长、阿里云智能事业部总裁张建锋表示,如今一个以云为核心的新型计算体系结构正在形成,该…

三菱m70刀杯上下m代码_加工中心常用G代码和M代码大全,收藏好了

我们在使用数控加工中心的过程中,最常见的数控代码有两种,一种是G代码,一种是M代码。本文整理了常见的G代码和M代码的含义,不同厂商不同的数控系统可能稍有出入,在实际中以说明书为准。G代码:准备功能&…

DataWorks搬站方案:Azkaban作业迁移至DataWorks

简介: DataWorks迁移助手提供任务搬站功能,支持将开源调度引擎Oozie、Azkaban、Airflow的任务快速迁移至DataWorks。本文主要介绍如何将开源Azkaban工作流调度引擎中的作业迁移至DataWorks上。 DataWorks迁移助手提供任务搬站功能,支持将开源…

DataWorks搬站方案:Airflow作业迁移至DataWorks

简介: DataWorks提供任务搬站功能,支持将开源调度引擎Oozie、Azkaban、Airflow的任务快速迁移至DataWorks。本文主要介绍如何将开源Airflow工作流调度引擎中的作业迁移至DataWorks上 DataWorks提供任务搬站功能,支持将开源调度引擎Oozie、Az…

mysql的每隔1分钟定时_深入研究MySQL(四)、备份与恢复

一、前言知道备份的重要性吗?没经历过的可能永远不知道,我们在重装系统、手机升级等时候,备份一下必要数据总是有好处的,指不定哪个神操作导致磁盘数据丢失,前些日子删库跑路被判刑的那位老哥,如果公司有备…

重磅发布 阿里云数据中台全新产品DataTrust聚焦企业数据安全保障

简介: DataTrust(隐私增强计算产品)是基于阿里云底层多项基础安全能力,经过阿里云数据中台丰富的客户业务实践,构建的一款为企业数据安全流通的产品。 随着包括零售、制造、金融等多行业数字化转型加速推进&#xff0…

完全无人驾驶量产车Apollo Moon威马版首秀 成本降一半、能力翻10倍

2021年10 月19日,百度Apollo联合威马正式发布两款新车,新车型均基于威马W6打造。一款是配置激光雷达的新一代无人车Apollo Moon量产车型(Apollo Moon威马版);另一款是搭载百度ANP领航辅助驾驶系统与AVP自主泊车系统的量…

二阶振荡环节的谐振频率_自动控制系统时域分析十三:对数频率特性

一:对数频率特性曲线(波德图-Bode图)Bode图由对数幅频特性和对数相频特性两条曲线组成。⒈波德图坐标(横坐标是频率,纵坐标是幅值和相角)的分度:1)横坐标分度(称为频率轴):它是以频率w的对数值logw进行线性分度的。但为了便于观察…

深入分析 Flutter 渲染性能

简介: Flutter 有很多优点,特别是对于开发者来说,跨平台多端支持,丰富的 UI 组件库和交互效果,声明式 UI,React 的更新方式,Hot-reload 提高开发效率等等。虽然它在渲染性能上有不少缺陷&#x…

张勇云栖大会谈科技担当与责任:做开放共享人人受益的好科技

10月19日,2021云栖大会在杭州开幕,阿里巴巴集团董事会主席兼首席执行官张勇在主论坛致辞中表示,从万物互联到万物生长,云栖大会经过12年的轮回,正站在一个新的起点上。阿里希望在基础研究方面有更多、更扎实的社会担当…

技术干货 | 源码解析 Github 上 14.1k Star 的 RocketMQ

简介: 站在发送方视角,通过源码,来分析在事务消息发送中 RocketMQ 是如何工作的。 前言 Apache RocketMQ 作为广为人知的开源消息中间件,诞生于阿里巴巴,于 2016 年捐赠给了 Apache。从 RocketMQ 4.0 到如今最新的 v4…

编译后没有taget文件夹_matconvnet安装、编译、配置

一、安装(可见大神windows下编译Matconvnet的方法(CPU和GPU))1.(本人)安装matlab2015b、Visual Studio 20152.官网Home - MatConvNet下载matconvnet工具包,我的名字是matconvnet-1.0-beta25,然后解压文件到…

面对大规模 K8s 集群,如何先于用户发现问题?

简介: 怎样才能在复杂的大规模场景中,做到真正先于用户发现问题呢?下面我会带来我们在管理大规模 ASI 集群过程中对于快速发现问题的一些经验和实践,希望能对大家有所启发。 作者 | 彭南光(光南) 来源 | 阿…

第7届UBBF在迪拜举办 加强网络设施建设将加速产业发展成为共识

今天,由联合国宽带委员会和华为共同举办的第7届全球超宽带高峰论坛(UBBF 2021)在迪拜开幕。作为固网领域全球最大的峰会,今年的UBBF以“联接,新增长”为主题,全球领先的运营商、设备商共同围绕“网络基础设…

使用 rocketmq-spring-boot-starter 来配置、发送和消费 RocketMQ 消息

简介: 本文将 rocktmq-spring-boot 的设计实现做一个简单的介绍,读者可以通过本文了解将 RocketMQ Client 端集成为 spring-boot-starter 框架的开发细节,然后通过一个简单的示例来一步一步的讲解如何使用这个 spring-boot-starter 工具包来配…

回归的误差服从正态分布吗_盘点10大回归类型:总有一款深得你心

全文共2507字,预计学习时长5分钟除了统计模型和其他的一些算法,回归是机器学习成功运行的重要构成要素。回归的核心是寻找变量之间的关系,而机器学习需要根据这种关系来预测结果。显然,任何称职的机器学习工程师都应重视回归&…

What‘s new in dubbo-go v1.5.6

简介: dubbogo 社区近期发布了 dubbogo v1.5.6。该版本和 dubbo 2.7.8 对齐,提供了命令行工具,并提供了多种加载配置的方式。 作者 | 铁城 dubbo-go 社区 committer 来源 | 阿里巴巴云原生公众号 dubbogo 社区近期发布了 dubbogo v1.5.6。该…

华为彭松:基于C.A.F模型构建联接竞争力,创造新增长

10月19日,第七届全球超宽带高峰论坛(Ultra-Broadband Forum 2021)在迪拜开幕。期间,华为运营商BG Marketing与解决方案销售部总裁彭松发表了题为“联接,新增长”的主题演讲,定义并深入探讨了C.A.F&#xff…

关于写文章的一点经验

简介: 过去的一年,借着《如何画好一张架构图?》、《2020总结(个人篇):关于个人成长的再认知》以及《2020 总结(团队篇):招之即来,来之即战,战之必…