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

删除链表的倒数第n个节点

求解代码

publicListNoderemoveNthFromEnd(ListNodehead,intn){if(head==null||n<=0){returnhead;}// 虚拟头节点:解决删除头节点时无前驱的边界问题ListNodedummy=newListNode(-1);dummy.next=head;ListNodepre=dummy;ListNodefast=head;ListNodeslow=head;// 快指针先单独移动n步for(inti=0;i<n;i++){// 若fast已为null,说明n>链表长度,无节点可删,直接返回原链表if(fast==null){returndummy.next;}fast=fast.next;}// 快慢指针同步移动,直到快指针到链表末尾(fast=null)while(fast!=null){fast=fast.next;// 快指针先后移pre=slow;// 把pre更新为当前的slow(此时slow还没动,pre"记住"了slow现在的位置)slow=slow.next;// slow再后移(此时pre已经是slow移动后的上一个节点)}// 执行删除操作:让前驱节点的next跳过slow,指向slow的下一个节点pre.next=slow.next;// 返回新链表头returndummy.next;}
http://www.jsqmd.com/news/217034/

相关文章:

  • 【毕业设计】机器学习 基于python深度学习的猫狗表情识别
  • 6784358
  • 【疾病识别】SVM农作物叶子虫害识别与分类【含GUI Matlab源码 14872期】
  • 两个链表的第一个公共结点
  • 深度学习毕设项目:基于CNN深度学习python的遥感图片识别沙漠湖泊和森林
  • 用这4招,优雅的实现Spring Boot 异步线程间数据传递
  • 【课程设计/毕业设计】基于python机器学习的猫狗表情识别
  • 【建议收藏】AI 音乐提示词终极指南|全网最全的创作控制手册|Suno 进阶指南|第 15 篇
  • 链表相加(二)
  • 深度学习毕设项目:基于python的印刷体数字和字母识别基于python深度学习的印刷体数字和字母识别
  • 在RabbitMQ中,怎么确保消息不会丢失?
  • 从一道前端面试题,谈 JS 对象存储特点和运算符执行顺序
  • 大数据领域Zookeeper的集群配置自动化工具推荐
  • 【交通标示识别】模板匹配雾霾交通标示识别【含GUI Matlab源码 14873期】
  • MYSQL_安装与配置(超详细,仅需一篇就能帮你成功安装MYSQL)
  • PO、VO、BO、DTO、DAO、POJO有什么区别?
  • ArcGIS Pro3.5.2安装包+安装详细教程+系统需求
  • MySQL进程CPU 飙升900%,领导让我查什么原因?
  • 【课程设计/毕业设计】基于 python的CNN深度学习的遥感图片识别沙漠湖泊和森林
  • ArcGIS Pro查看多期数据变化!卷帘+多地图联动齐上架
  • Stream流式编程 中间操作和终端操作介绍
  • 【苹果分级】基于matlab GUI机器视觉苹果质量检测及总分级系统【含Matlab源码 14878期】
  • 【课程设计/毕业设计】基于深度学习的印刷体数字和字母识别基于python深度学习的印刷体数字和字母识别
  • 深度学习计算机毕设之机器学习基于CNN深度学习的遥感图片识别沙漠湖泊和森林
  • ArcGIS土地利用现状图制作全流程
  • Merge3D 三维引擎中 GeoJSON 数据加载的整体设计
  • K8S安装指南与核心操作命令汇总
  • 企业知识管理新范式:用ChatWiki+大模型实现“一问即答“[必学收藏]
  • 15_嵌入式C与控制理论入门:控制算法的定点数优化与精度平衡
  • 新下证美国外观专利:42款亚马逊侵权高危新品,跨境卖家立即自查!