LeetCode 19.删除链表的倒数第N个结点

链接

https://leetcode.cn/problems/remove-nth-node-from-end-of-list/description/

题目:

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

示例1:

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

示例 2:

输入:head = [1], n = 1
输出:[]

示例 3:

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

提示:

  • 链表中结点的数目为 sz
  • 1 <= sz <= 30
  • 0 <= Node.val <= 100
  • 1 <= n <= sz

思路1: 暴力解法。遍历一遍得到节点个数N,然后再重新遍历,遍历时到 (N - n - 1)时,即得到要删除的节点的前一个节点。然后进行删除即可。  注意:当要删除的是第一个节点的时候,要进行单独处理和判断。 即 (N - n - 1) < 0 时,是删除第一个节点,因此要对该情况进行单独讨论

思路2: 定义两个指针(slow和fast),通过两者的距离(使得fast和slow的距离为n)来得到目的节点的前一个节点。当fast运行到尾节点的时候,slow则是目的节点的前一个节点位置。然后进行删除目的节点操作即可。 注意:这种情况在要删除的节点为第一个节点的时候也要进行特殊处理,当fast为nullptr的时候,为删除第一个节点,然后进行单独讨论即可

代码

class Solution {
public:ListNode* removeNthFromEnd(ListNode* head, int n) {ListNode* slow = head , *fast = head;while(n--) fast = fast->next;while(fast && fast->next)//使fast运行到尾节点且fast不为空{fast = fast->next;slow = slow->next;}if(!fast)//fast为空时{head = head->next;}else{slow->next= slow->next->next;}return head;}
};

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

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

相关文章

电动汽车厂商Rivian将全新设计元素融入由虚幻引擎驱动的车机界面

Rivian Automotive&#xff08;简称&#xff1a;“Rivian”&#xff09;&#xff0c;是美国一家电动汽车厂商&#xff0c;该品牌创办于2009年&#xff0c;总部位于加州埃尔文&#xff0c;专注于生产电动皮卡车Rivian R1T和电动SUV Rivian R1S。 Rivian的车主们正追寻这样一条道…

Qt坐标系统

目录 概述 渲染 逻辑表示 锯齿绘制 坐标转换 模拟时钟示例 Window-Viewport转换 概述 坐标系统由QPainter类控制。与QPaintDevice和QPaintEngine类一起&#xff0c;QPainter构成了Qt绘画系统的基础。QPainter用于执行绘制操作&#xff0c;QPaintDevice是一个二维空间的抽…

番外篇 | YOLOv8算法解析和实战应用:车辆检测 + 车辆追踪 + 行驶速度计算

前言:Hello大家好,我是小哥谈。YOLOv8是ultralytics公司在2023年1月10号开源的,是YOLOv5的下一个重大更新版本,目前支持图像分类、物体检测和实例分割任务,在还没有开源时就收到了用户的广泛关注。它是一个SOTA模型,建立在以前YOLO版本的成功基础上,并引入了新的功能和改…

开发中遇到的错误 - @SpringBootTest 注解爆红

我在使用 SpringBootTest 注解的时候爆红了&#xff0c;ait 回车也导不了包&#xff0c;后面发现是因为没有加依赖&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId>…

yarn的安装与使用介绍

Yarn 是一个快速、可靠且安全的 JavaScript 包管理工具。它的主要功能包括&#xff1a; 1. **快速**&#xff1a;Yarn 使用并行化的方式来安装包&#xff0c;因此速度比 npm 更快。 2. **安全**&#xff1a;每个安装的包都会生成一个 checksum 文件&#xff0c;以确保所有用户…

【shell脚本速成】函数

文章目录 一、函数1.1、函数介绍1.2、函数定义1.3、函数调用 &#x1f308;你好呀&#xff01;我是 山顶风景独好 &#x1f388;欢迎踏入我的博客世界&#xff0c;能与您在此邂逅&#xff0c;真是缘分使然&#xff01;&#x1f60a; &#x1f338;愿您在此停留的每一刻&#xf…

网络虚拟化考题

vrrp讲过吗&#xff1f;&#xff1f;&#xff1f; d 每一层都是什么设备啊 abcd 为啥流量不可控不可视 c是啥意思 讲过吗 abc aNET网络虚拟化是啥啊 为啥&#xff1f;&#xff1f; 啥是CDN&#xff1f;&#xff1f;&#xff1f;&#xff1f;&#xff1f;

Java数据类型与运算符

1. 变量和类型 变量指的是程序运行时可变的量&#xff0c;相当于开辟一块空间来保存一些数据。 类型则是对变量的种类进行了划分&#xff0c;不同类型的变量具有不同的特性。 1.1 整型变量&#xff08;重点&#xff09; 基本语法格式&#xff1a; int 变量名 初始值;代码示…

舔狗日记Puls微信小程序源码

源码介绍&#xff1a; 这是一款舔狗日记Puls微信小程序源码&#xff0c;提供每日一舔的功能&#xff0c;让你舔到最后&#xff0c;什么都有&#xff01; 源码通过API获取一些舔狗日记&#xff0c;内置了100多句舔狗日记&#xff0c;让你摆脱上班摸鱼的无聊时光&#xff0c; …

蓝桥杯 经典算法题 实现快速排序

题目&#xff1a; 题解&#xff1a; 快速排序其实每次不是将大区间平均分为两个子区间&#xff08;这个与每次选取的基准值有关&#xff09;&#xff0c;而是每次将区间分为全大于基准值和全小于基准值两个子区间&#xff0c;然后又分别在子区间中再找一个基准值再分为两个子区…

TIM: A Time Interval Machine for Audio-Visual Action Recognition

标题&#xff1a;TIM&#xff1a;一种用于视听动作识别的时间间隔机器 源文链接&#xff1a;openaccess.thecvf.com/content/CVPR2024/papers/Chalk_TIM_A_Time_Interval_Machine_for_Audio-Visual_Action_Recognition_CVPR_2024_paper.pdfhttps://openaccess.thecvf.com/cont…

社区项目-项目介绍环境搭建

文章目录 1.技术选型2.原型设计1.安装AxureRP2.进行汉化3.载入元件库4.基本设计 3.元数建模1.安装元数建模软件2.新建项目3.新增一个刷题模块主题域4.新增数据表 subject_category5.新增关系图&#xff0c;将表拖过来6.新增题目标签表7.新增题目信息表8.新增单选表、多选表、判…

​Claude 3.5 最新体验:助力硕博生与科研人员高效完成论文,超越ChatGPT4o !

我是娜姐 迪娜学姐 &#xff0c;一个SCI医学期刊编辑&#xff0c;探索用AI工具提效论文写作和发表。 要不说AI领域的进展真的是日新月异&#xff0c;发展速度已经大大超过预期进度。娜姐本来在准备AI降重工具的测评文章&#xff08;最近好多小伙伴需要&#xff09;。 昨天晚上…

ECharts 词云图案例二:创意蒙版应用

ECharts 词云图案例二&#xff1a;创意蒙版应用 引言 在数据可视化领域&#xff0c;ECharts 以其强大的功能性和灵活性&#xff0c;成为开发者和设计师的首选工具之一。继上一篇关于 ECharts 词云图的详细介绍后&#xff0c;本文将探索词云图的进阶应用——使用蒙版来创造更具…

【C#上位机应用开发实战】—— UI界面设计与实践代码

在C#上位机应用开发中&#xff0c;UI界面设计是至关重要的一环。一个好的UI设计不仅可以提升应用的用户体验&#xff0c;还可以提高应用的易用性和效率。本文将介绍一些UI界面设计的实战经验和技巧。 在这个示例中&#xff0c;我们创建了一个名为MainForm的窗体类。该窗体包含了…

轮式里程计(Wheel Odometry)和惯性测量单元(IMU)的融合

轮式里程计&#xff08;Wheel Odometry&#xff09;和惯性测量单元&#xff08;IMU&#xff09;的融合通常采用某种形式的滤波技术&#xff0c;最常见的是卡尔曼滤波器&#xff08;Kalman Filter&#xff09;或其变体&#xff0c;如扩展卡尔曼滤波器&#xff08;Extended Kalma…

AI在线免费视频工具2:视频配声音;图片说话hedra

1、视频配声音 https://deepmind.google/discover/blog/generating-audio-for-video/ https://www.videotosoundeffects.com/ &#xff08;免费在线使用&#xff09; 2、图片说话在线图片生成播报hedra hedra 上传音频与图片即可合成 https://www.hedra.com/ https://www.…

Kotlin基础——优化设计模式

设计模式 使用Kotlin优化Java的设计模式写法 创建型模式 工厂方法模式 interface Computer {val cpu: String }class PC(override val cpu: String "Core") : Computer class Server(override val cpu: String "Xeon") : Computerenum class Compute…

B. Maximum Multiple Sum

time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Given an integer n&#x1d45b;, find an integer x&#x1d465; such that: 2≤x≤n2≤&#x1d465;≤&#x1d45b;.The sum of multiples of …

如何使用Windows备份轻松将数据转移到新电脑?这里有详细步骤

序言 我们都知道那种买了一台新电脑,就想直接上手的感觉。我记得在过去的日子里,要花几个小时传输我的文件,并试图复制我的设置。在当今传输数据的众多方法中,Windows备份提供了一个简单可靠的解决方案。 登录到你的Microsoft帐户 Microsoft在传输过程中使用其云存储来保…