当前位置: 首页 > news >正文

5.删除链表的倒数第N个节点

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

题目:

19. 删除链表的倒数第 N 个结点 - 力扣(LeetCode)

分析:

要删除倒数第几个节点,那么我们需要怎么做呢?我们需要定义两个指针,快指针和慢指针,让快指针先走n步,再让慢指针和快指针一起往后走。

那么什么时候停止呢?当fast指针指向最后一个节点时(fast.next()==null)时停止,此时slow指针指向的就是 size - n个元素即倒数第 n + 1个元素,所以我们可以使用倒数 n + 1 个元素来删除倒数第 n 个元素。

比如一共有8个元素(1,2,3,4,5,6,7,8),当我们要删除倒数第2个元素,即7

  1. 先让 fast 走两步,0+2=2;
  2. 再让 slow 和 fast 一起走,当 fast 再走了 6 步后达到了末尾 (8),此时 slow 达到了(6)那么现在slow在的位置是倒数第3个位置。

代码:

/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode() {}*     ListNode(int val) { this.val = val; }*     ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/
class Solution {public ListNode removeNthFromEnd(ListNode head, int n) {ListNode dummyNode = new ListNode(0, head);ListNode fast = dummyNode, slow = dummyNode;for(int i = 0; i < n; i++){fast = fast.next;}while(fast.next != null){fast = fast.next;slow = slow.next;}slow.next = slow.next.next;return dummyNode.next;}
}
http://www.lryc.cn/news/502514.html

相关文章:

  • 自己总结:selenium高阶知识
  • 前端怎么预览pdf
  • activemq 的安装部署
  • 【H3CNE邓方鸣】配置链路聚合+2024.12.11
  • C语言 学习 日志 递归函数 2024/12/12
  • 【Ubuntu】使用ip link工具创建虚拟局域网并配置?
  • flink sink kafka的事务提交现象猜想
  • 网络原理03
  • 每天40分玩转Django:简介和环境搭建
  • 【蓝桥杯最新板】蓝桥杯嵌入式液晶上实现电子时钟
  • 【机器学习】基础知识:拟合度(Goodness of Fit)
  • 使用Jackson库在Java应用程序中将Map对象转换为JSON数组字符串,以及反向操作
  • 深入解析强化学习中的 Generalized Advantage Estimation (GAE)
  • 离开wordpress
  • Python的3D可视化库【vedo】1-4 (visual模块) 体素可视化、光照控制、Actor2D对象
  • 使用html和JavaScript实现一个简易的物业管理系统
  • 什么是纯虚函数?什么是抽象类?纯虚函数和抽象类在面向对象编程中的意义是什么?
  • #Ts篇: Record<string, number> 是 TypeScript 中的一种类型定义,它表示一个键值对集合
  • Exp 智能协同管理系统前端首页框架开发
  • C# 备份文件夹
  • 互联网信息泄露与安全扫描工具汇总
  • 主导极点,传递函数零极点与时域模态
  • 永恒之蓝漏洞利用什么端口
  • 网络安全与防范
  • Navicat 17 功能简介 | SQL 开发
  • 嵌入式系统中的并行编程模型:汇总解析与应用
  • VulkanSamples编译记录
  • 使用FabricJS对大图像应用滤镜(巨坑)
  • 网页502 Bad Gateway nginx1.20.1报错与解决方法
  • Spring基础分析02-BeanFactory与ApplicationContext