【算法专题--链表】删除排序链表中的重复元素 -- 高频面试题(图文详解,小白一看就懂!!)

news2024/10/23 2:50:53

目录

一、前言

二、题目描述 

三、解题方法 

⭐双指针

四、总结与提炼

五、共勉  


一、前言

       删除排序链表中的重复元素这道题,可以说是--链表专题--,最经典的一道题,也是在面试中频率最高的一道题目,通常在面试中,面试官可能会从多个方面考察这道题目,所以大家需要对这道题目非常熟悉哦!!
      本片博客就来详细的讲讲解一下 删除排序链表中的重复元素 的实现方法,让我们的面试变的更加顺利!!!

二、题目描述 

给定一个已排序的链表的头 head , 删除所有重复的元素,使每个元素只出现一次 。返回 已排序的链表 。 

三、解题方法 

⭐双指针

这道题要  删除链表中的重复节点

  • 首先删除一个链表节点,是通过修改其上一个节点和下一个节点之间的连接关系实现的。 

  •  其次链表有序,因此我们要删除那些重复元素,可以用一个指针指向当前节点的值,另一个指针去找到下一个与它值不同的节点,然后建立这两个节点的连接,从而删除那些重复元素

代码:

class Solution {
public:
    ListNode* deleteDuplicates(ListNode* head) 
    {
        // 双指针 思路
        ListNode* cur = head;
        ListNode* nextnode;

        while(cur)
        {
            // 找到下一个不同值的节点,初始为当前节点的下一个节点
            nextnode = cur->next;
        
            while(nextnode && nextnode->val == cur->val)
            {
                // 找到 下一个不同值节点
                nextnode = nextnode->next;
            }
            // 当前节点与下一个不同值节点建立连接
            cur->next = nextnode;
            // 更新当前节点
            cur = nextnode;
        }
        return head;
    }
};

 四、总结与提炼

       最后我们来总结一下本文所介绍的内容,本文讲解来一道力扣中有关 删除排序链表中的重复元素的题目,这道题目是校招笔试面试中有关链表章节非常高频的一道题目大家下去一定要自己再画画图,分析一下,把这段代码逻辑自己实现一遍,才能更好地掌握 

五、共勉  

       以下就是我对 删除排序链表中的重复元素 的理解,如果有不懂和发现问题的小伙伴,请在评论区说出来哦,同时我还会继续更新对 链表专题 的理解,请持续关注我哦!!! 

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

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

相关文章

【Linux】I/O多路复用模型 select、poll、epoll

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; &#x1f525;Linux系列专栏&#xff1a;Linux基础 &#x1f525; 给大家…

怎么将几段音频合并在一起,试试这几个音频拼接小妙招

怎么将多个音频合并在一起呢&#xff1f;音频是我们日常工作生活中常见的文件&#xff0c;音频与我们息息相关&#xff0c;无论你是音乐爱好者&#xff0c;还是喜欢记录生活中的声音&#xff0c;都离不开音频。因此我们会遇到关于很多音频剪辑的难题&#xff0c;就像今天小编给…

SpringBoot复习

第一章 SpringBoot开发入门 1.Springboot的优点。 ① 可快速构建独立的Spring应用。 ② 直接嵌入Tomcat、Jetty和Undertow服务器&#xff08;无须部署WAR文件&#xff09; ③ 通过依赖启动器简化构建配置 ④ 自动化配置Spring和第三方库 ⑤ 提供生产就绪功能 ⑥ 极少的代码生成…

Redis变慢了?之三

Redis变慢了&#xff1f;之三 Redis变慢了fork耗时优化方案 AOFAOF策略对性能影响 最后 Redis变慢了 Redis变慢上一篇文章地址&#xff1a;Redis变慢了&#xff1f;之二 这篇文章继续Redis变慢情况的分析。 fork耗时 在 Redis 中&#xff0c;fork 是一个非常重要的操作&…

ROS操作过程中的报错

文章目录 错误&#xff1a;E: Unable to locate package ros-noetic-desktop-full报错问题报错原因解决方法 错误2&#xff1a;ERROR: cannot download default source list from:报错问题错误原因解决办法 错误&#xff1a;E: Unable to locate package ros-noetic-desktop-fu…

Mysql 8.3.0 安装

Mysql 8.3.0 安装地址&#xff1a;MySQL :: Download MySQL Community Server (Archived Versions) 下载链接&#xff1a;https://downloads.mysql.com/archives/get/p/23/file/mysql-8.3.0-linux-glibc2.28-x86_64.tar.xz 解压&#xff1a; tar -xvf mysql-8.3.0-linux-glib…

javaWeb项目-ssm+vue企业台账管理平台功能介绍

本项目源码&#xff1a;javaweb项目ssm-vue企业台账管理平台源码-说明文档资源-CSDN文库 项目关键技术 开发工具&#xff1a;IDEA 、Eclipse 编程语言: Java 数据库: MySQL5.7 框架&#xff1a;ssm、Springboot 前端&#xff1a;Vue、ElementUI 关键技术&#xff1a;springboo…

源代码保密的七种有效方法分享

在当今数字化时代&#xff0c;访问安全和数据安全成为企业面临的重要挑战。传统的边界防御已经无法满足日益复杂的内网办公环境&#xff0c;层出不穷的攻击手段已经让市场单一的防御手段黔驴技穷。当企业面临越来越复杂的网络威胁和数据泄密风险时&#xff0c;更需要一种综合的…

新手必读:平面设计自学全攻略

据说平面设计的门槛很低&#xff0c;零基础也很容易上手。但是据我所知许多初学者在自学平面设计时面临以下瓶颈&#xff1a;为什么跟着大神自学平面设计帖子依旧学不会呢&#xff0c;明明报了许多平面设计自学课程&#xff0c;但仍然不会自主设计&#xff0c;初学者到底从哪里…

18 Shell编程规范与变量

目录 18.1 Shell脚本概述 18.1.1 Shell的作用 18.1.2 编写第一个Shell脚本 18.1.3 重定向与管道操作 18.2 Shell变量的作用、类型 18.2.1 自定义变量 18.2.2 特殊的Shell变量 18.1 Shell脚本概述 可以批量处理、自动化地完成一系列维护任务&#xff0c;大大减轻管理员的负担。…

音频——性能测试中的基本概念

文章目录 频率响应平均电平增益ADC 路径增益DAC 路径增益底噪信噪比总谐波失真+噪声(THD+N)延迟频率响应 对于音频设备,频率响应可以理解为音频设备对不同频率信号的处理或重现。对于音频信号频率,一般关注20Hz~20kHz范围。理想情况下,输入幅度相同的不同频率信号,过音频…

她经济和女性经济,女性消费力量的崛起

在当今这个数字化飞速发展的时代&#xff0c;"她经济"已经不再是一个简单的概念&#xff0c;而是一场正在上演的女性消费革命。 在最新的《QuestMobile 2024“她经济”洞察》报告中&#xff0c;为我们揭示了女性在移动互联网时代的独特地位和影响力。 首先&#xf…

怎么通俗理解概率论中的c r(cramer rao 克拉默拉奥)不等式?

还是推一下比较好记 视频链接 【数理统计学重要定理证明&#xff1a;C-R不等式——无偏估计的方差下界-哔哩哔哩】 https://b23.tv/4gk1AvU 【数理统计学重要定理证明&#xff1a;C-R不等式——无偏估计的方差下界-哔哩哔哩】

R语言dplyr统计指定列里面种类个数和比例

输入数据框&#xff1a;dfuorf&#xff0c;Type列有uORF和overlpaORF两种类型 dfuorf1 <- dfuorf %>%group_by(Type) %>% summarise(Countn()) %>% mutate(percentCount/sum(Count)) %>% mutate(percent1 (paste0(round((Count/sum(Count)), 2)*100,"%&…

【安防天下】模拟视频监控系统——模拟监控系统的构成视频采集设备

文章目录 1 模拟监控系统的构成2 视频采集设备2.1 摄像机相关技术2.1.1 摄像机的工作原理2.1.2 摄像机的分类2.1.3 摄像机的主要参数 2.2 镜头相关介绍2.2.1 镜头的主要分类2.2.2 镜头的主要参数 1 模拟监控系统的构成 模拟视频监控系统又称闭路电视监控系统&#xff0c; 一般…

②-Ⅱ单细胞学习-组间及样本细胞比例分析(补充)

数据加载 ①单细胞学习-数据读取、降维和分群_subset函数单细胞群-CSDN博客‘ #2024年6月20日 单细胞组间差异分析升级# rm(list = ls()) library(Seurat)#数据加载(在第一步已经处理好的数据) load("scedata1.RData")#这里是经过质控和降维后的单细胞数据 tabl…

解读代理 IP差异:ISP 代理与住宅代理

独立IP作为跨境必备工具&#xff0c;代理类型五花八门&#xff0c;今天IPFoxy全球代理将为搭建科普&#xff1a;ISP代理与住宅代理在理论上与使用上的区别。代理充当用户和互联网之间的中介&#xff0c;提供各种功能以增强安全性、隐私性和可访问性。在众多代理类型中&#xff…

关系数据理论

什么是关系数据理论&#xff1a;用来评判数据库逻辑设计“好坏程度”的标准&#xff1b;二是如果逻辑设计中存在“不好”的关系模式&#xff0c;如何将其修改为“好”的关系模式。 函数依赖&#xff1a;举个例子:学生表中&#xff0c;一个学生的学生号确定了&#xff0c;学生的…

填坑-celery正常启动后能收到任务但不执行任务的解决办法

场景 Flask开发中用celery 6正常启动后能收到任务但不执行任务的解决办法&#xff0c;也没有错误提示…… INFO/MainProcess] Task app.add_together[ce406ed8-71b3-49e6-8556-f44bfe66549c] received [2024-06-20 19:38:10,632: INFO/SpawnPoolWorker-36] child process 2244…

NetSuite Inventory Transfer Export Saved Search

用户之前有提出一个实际的需求&#xff0c;大致意思是想要导出Inventory Transfer的相关明细行信息&#xff0c;且要包含From Location&#xff0c;To Location&#xff0c;Quantity等信息。 我们知道From Location和To Location在IT Form中应该是在Main的部分&#xff0c;在D…