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

算法第十五天:leetcode19.删除链表的倒数第N个节点

 一、删除链表的倒数第N个节点的题目描述与链接

  19.删除链表的倒数第N个节点的链接如下表所示,您可直接复制下面网址进入力扣学习,在观看下面的内容之前您一定要先做一遍哦,以便让我印象更深刻!!!
https://leetcode.cn/problems/remove-nth-node-from-end-of-list/description/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

进阶:你能尝试使用一趟扫描实现吗?

二、Java版 

 该题可用虚拟头结点双指针的方法解决,具体代码如下所示:

class Solution {public ListNode removeNthFromEnd(ListNode head, int n) {ListNode dummyhead=new ListNode(-1); //创建虚拟头结点dummyhead.next=head;ListNode fast=dummyhead;  //快指针ListNode slow=dummyhead;  //慢指针for(int i=0;i<=n;i++){fast=fast.next;}while(fast!=null){fast=fast.next;slow=slow.next;}if(slow.next!=null){slow.next=slow.next.next;}return dummyhead.next;}
}

三、删除链表的倒数第N个节点的具体思路 

  • 定义slow指针和fast指针,初始值为虚拟头节点。如图一:
图一

  •  fast首先走n+1步,slow才能指向删除节点的上一个节点,如图二:
图二

  •  slow和fast同时移动,直到fast指向末尾,如图三:
图三

  •  删除slow指向的下一个节点,如图四:
图四

    最后,感谢各位读者的阅读与支持,您的支持是我前进的动力!我希望我的博文能够带给您有用的算法知识和启发。希望本题对大家有帮助,谢谢各位读者的支持!!!

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Visual stdio code 运行C项目环境搭建
  • openCv -- 优势
  • Docker 搭建Elasticsearch详细步骤
  • 【C++】模板详解
  • 如何撤销/回滚远程修改
  • Springboot项目的行为验证码AJ-Captcha(源码解读)
  • cpp程序设计实践,类实现树链刨分以及计算几何类
  • ASP.NET中的六大对象有哪些?以及各自的功能以及使用方式
  • Android中systrace配置及注意问题
  • 面试题012-数据库-MySQL(日志+优化)
  • 开始尝试从0写一个项目--前端(三)
  • 学习华为IPD流程黑话2.0
  • Intel12代处理器在虚拟机中安装Windows98SE
  • Linux基础复习(三)
  • 云服务器Ubuntu18.04进行Nginx配置
  • hexo+github搭建个人博客
  • android 一些 utils
  • Angular2开发踩坑系列-生产环境编译
  • CSS居中完全指南——构建CSS居中决策树
  •  D - 粉碎叛乱F - 其他起义
  • es6要点
  • git 常用命令
  • JavaScript新鲜事·第5期
  • React组件设计模式(一)
  • Redis提升并发能力 | 从0开始构建SpringCloud微服务(2)
  • 阿里云前端周刊 - 第 26 期
  • 动态规划入门(以爬楼梯为例)
  • 高程读书笔记 第六章 面向对象程序设计
  • 简单实现一个textarea自适应高度
  • 开源SQL-on-Hadoop系统一览
  • 免费小说阅读小程序
  • 如何优雅地使用 Sublime Text
  • 用jQuery怎么做到前后端分离
  • Oracle Portal 11g Diagnostics using Remote Diagnostic Agent (RDA) [ID 1059805.
  • 阿里云API、SDK和CLI应用实践方案
  • ​软考-高级-系统架构设计师教程(清华第2版)【第15章 面向服务架构设计理论与实践(P527~554)-思维导图】​
  • ​软考-高级-系统架构设计师教程(清华第2版)【第9章 软件可靠性基础知识(P320~344)-思维导图】​
  • !$boo在php中什么意思,php前戏
  • # wps必须要登录激活才能使用吗?
  • #我与Java虚拟机的故事#连载15:完整阅读的第一本技术书籍
  • (13)Latex:基于ΤΕΧ的自动排版系统——写论文必备
  • (2024,RWKV-5/6,RNN,矩阵值注意力状态,数据依赖线性插值,LoRA,多语言分词器)Eagle 和 Finch
  • (C语言)共用体union的用法举例
  • (LeetCode) T14. Longest Common Prefix
  • (ros//EnvironmentVariables)ros环境变量
  • (八)Spring源码解析:Spring MVC
  • (分布式缓存)Redis持久化
  • (每日一问)计算机网络:浏览器输入一个地址到跳出网页这个过程中发生了哪些事情?(废话少说版)
  • (转)关于pipe()的详细解析
  • .Mobi域名介绍
  • .NET 中使用 Mutex 进行跨越进程边界的同步
  • .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args
  • .net8.0与halcon编程环境构建
  • .NET多线程执行函数
  • .net通用权限框架B/S (三)--MODEL层(2)