25.删除链表中倒数第N个结点

news2024/9/22 23:37:50

题意:给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。

class Solution {
public:
    ListNode* removeNthFromEnd(ListNode* head, int n) {
        ListNode* dummyHead=new ListNode(0); //定义虚拟头结点
        ListNode* fast=dummyHead; //定义快指针
        ListNode* slow=dummyHead; //慢指针
        dummyHead->next=head;
        while(n--)
        {
            fast=fast->next;
        }
        fast=fast->next;  //先让快指针移动到第n+1个节点
        while(fast!=NULL)
        {
            slow=slow->next;
            fast=fast->next;
        }                     //然后快慢指针同时移动,直到快指针移动到NULL处,此时慢指针移动到了要被删除结点的上一个结点。    
        ListNode* tmp=slow->next;
        slow->next=slow->next->next;
        delete tmp;                  //删除该结点,并连接下一个结点。
        return dummyHead->next;

    }
};

注意:

此题的重点是双指针法,定义快慢指针,题目要求删除倒数第n个结点,那么先让快指针移动到第n个结点,然后再让快慢指针一起移动,直到快指针移动到NULL,此时慢指针就移动到了倒数第n个结点。

又因为如果要删除一个结点,需要找到该结点的上一个结点,所以让快指针移动到第n个结点后,再往下移动一个结点,上述操作后,慢指针就会移动到被删除结点的上一个结点。

核心思想是,假设有10个数,我想找到倒数第二个数,那么先单独移动两次(正向),然后再一起移动(10-2)次,也就是移动八次,找到倒数第二个也就是正数第八个。

出自:代码随想录 

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

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

相关文章

32.网络游戏逆向分析与漏洞攻防-游戏网络通信数据解析-网络数据分析原理与依据

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 如果看不懂、不知道现在做的什么,那就跟着做完看效果 内容参考于:易道云信息技术研究院VIP课 上一个内容:31.其它消息的实…

浅谈游戏地图中位置实时更新的技术方案

地图如今在游戏中发挥的作用越来越重要,随着电子竞技的兴起,地图逐渐成为了为玩家创造体验的直接舞台。希望本文能对有兴趣了解游戏地图背后实现原理的同学一些帮助。 什么是游戏地图 在游戏中可以通过3D场景虚拟一个完整的世界,当3D场景较为…

基于springboot的大学生租房平台系统

技术:springbootmysqlvue 一、系统背景 互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以很好地为人们提供服务。针对大学生租房信息管理混乱…

C语言每日一题07

一、题目 二、解析 逻辑与 &&、逻辑或 || 均有“短路”特性: 逻辑与&&“短路”:当逻辑与&&的左操作数为逻辑 “假“ 时,就足以判断该逻辑运算的结果为假了,故右操作数就不再被执行。 逻辑或||“短路”&#xff1a…

使用PLCSIM Advanced仿真博途运动控制

作者顾工首先,添加一个CPU,直接添加一个1518T,反正仿真,不用最好的干嘛呢。是吧。当然,你也可以添加一个你喜欢的PLC,这里不强求。 然后添加工艺对象,我们简单添加一个定位轴。 在工艺对象&am…

GPT-5揭秘:Lex Fridman与Sam Altman播客热议,AGI时代的新变革即将来临!

嘿,朋友们,你们知道吗?Lex Fridman和Sam Altman又聚在一起了,这次是在播客上。 在播客中,他们聊了很多,包括董事会的幕后故事、Elon Musk的诉讼案,甚至还提到了Ilya、Sora这些名字。 但真正让…

跟着官方文档一步一步搭建Elastic Stack(3节点ES集群+Kibana+Filebeat+Metricbeat)

文章目录 源码仓库硬件要求配置文件docker-compose.ymlfilebeat.ymlmetricbeat.yml 配置项解读以及注意事项docker-compose.yml解读filebeat配置解读metricbeat配置解读SSL配置ILM配置 运行运行截图 写在最后 本篇文章是使用Filbeat将产品环境的access_lo同步至Elastic Stack中…

SSTI漏洞详解

目录 前备知识 模块引擎: 模块渲染函数: 继承关系: SSTI漏洞简介 SSTI漏洞成因 SSTI漏洞原理 一些常见模块介绍 php Twig模块引擎 代码演示1 Twig模块引擎代码演示2 python flask模块 代码演示1: python jinja模块 代…

Net安卓app BroadcastReceiver 使用记录一坑

1.背景 由于项目需要,需要对接别的app的广播,就看了看Net 安卓开发的广播接收,看官网的介绍单纯广播和接收都挺简单的,于是上手样板项目弄了两个demo出来,app1用来发,app2用来收。 2.版本 :使…

2024格行VS华为VS飞猫哪个是最值得购买随身WiFi?中兴随身WiFi好用吗?

经常出差旅行,或者户外工作的朋友因为长期在外,手机流量经常不够用,想必都是随身WiFi的忠实用户,但是也都被这款产品割韭菜割的头皮发麻。今天,我们统计了市面上最靠谱的、最热销、口碑最好的几款随身WiFi。排名依据来…

查询表中数据(全列/特定列/表达式,where子句(比较/逻辑运算符),order by子句,limit筛选分页),mysql执行顺序

目录 select 全列查询 特定列查询 用表达式查询 (as) 名字 distinct 去重 where子句 比较运算符 列数据之间的比较 ​编辑 别名不能参与比较 null查询 between and in ( ... , ...) 模糊匹配 逻辑运算符 order by子句 可以使用别名 总结mysql执行顺…

【蓝桥杯选拔赛真题71】python判断字符 第十五届青少年组蓝桥杯python选拔赛真题 算法思维真题解析

目录 python判断字符 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序编写 四、程序说明 五、运行结果 六、考点分析 七、 推荐资料 1、蓝桥杯比赛 2、考级资料 3、其它资料 python判断字符 第十五届蓝桥杯青少年组python比赛选拔赛真题 一、题目要…

Google colab中如何从kaggle中接入数据?

写在前面 使用google colab进行数据分析和探索时,可引用的数据源包括但不限于:1.可上传的数据文件用本地加载的的方式打开数据资源;2.从网络链接中直接打开后加载到缓存中的文件资源;3.通过API或者外部的开放接口加载数据&#x…

软考 网络工程师 每日学习打卡 2024/3/21

学习内容 第8章 网络安全 本章主要讲解网络安全方面的基础知识和应用技术。针对考试应该掌握诸如数据加密、报文认 证、数字签名等基本理论,在此基础上深入理解网络安全协议的工作原理,并能够针对具体的 网络系统设计和实现简单的安全解决方案。 本章共有…

C语言之strsep用法实例(八十六)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒…

除了Confluence,有没有其他工具一样好用?

每个团队都需要一个协同工作工具,以更有效地管理任务、跟踪进度和分享知识。这就是Atlassian的Confluence发挥作用的地方。然而,尽管它相当强大,其昂贵的价格和复杂的界面可能会让某些用户望而却步。所以,还有其他工具可以替代Con…

面试算法-65-二叉树的层平均值

题目 给定一个非空二叉树的根节点 root , 以数组的形式返回每一层节点的平均值。与实际答案相差 10-5 以内的答案可以被接受。 示例 1: 输入:root [3,9,20,null,null,15,7] 输出:[3.00000,14.50000,11.00000] 解释:第 0 层的…

python中获取当前项目的目录

大家好,我是雄雄,欢迎关注微信公众号:雄雄的小课堂 今天介绍一下,如何在python中获取当前项目所在的目录,而不是运行脚本的目录。 class ProjectPaths:# 初始化时获取当前脚本的路径staticmethoddef get_script_dir():…

mysql数据库的索引管理

目录 一、索引的概述 1、索引的概念 2、索引的作用 3、索引的副作用 4、创建索引的原则依据 5、索引优化 6、索引的分类 7、数据文件与索引文件 二、管理数据库索引 1、查询索引 2、创建索引 2.1 创建普通索引 2.2 创建唯一索引 2.3 创建主键索引 2.4 创建组合…

java 方法重写

1、方法重写概述 重写发生在两个类中,这两个类必须有继承或实现关系。 子类中出现了和父类中一模一样的方法声明。这一模一样指的是什么? (1)方法名、返回值类型、参数(个数、类型、顺序)与父类一样&…