14-链表练习-剑指 Offer II 021. 删除链表的倒数第 n 个结点
题目
给定一个链表,删除链表的倒数第 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 (n符合规范,题目中不用判断其合法性)
进阶:能尝试使用一趟扫描实现吗?
思路
此题与上一题类似,采用快慢指针法。不同的是,此题的slow和fast两个快慢指针都是从dummyHead虚拟头节点开始向后走,这样可以确保当fast指向null时,slow恰好指向待删除节点的前一个节点,方便删除节点。
代码
/*** 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) {if(head == null) {return null;}ListNode dummyHead = new ListNode(-1);dummyHead.next = head;//采用快慢指针法先找到链表中倒数第n个节点ListNode slow = dummyHead, fast = dummyHead;//先让fast走n步for(int i = 0; i < n + 1; i++) {if(fast == null) {return head;}fast = fast.next;}//让slow和fast一起向后走while(fast != null) {slow = slow.next;fast = fast.next;}//此时slow就指向了待删除节点的前一个节点,删除要删的节点即可slow.next = slow.next.next;return dummyHead.next;}
}
相关文章:

14-链表练习-剑指 Offer II 021. 删除链表的倒数第 n 个结点
题目 给定一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 示例 1: 输入:head [1,2,3,4,5], n 2 输出:[1,2,3,5] 示例 2: 输入:head [1], n 1 输出:[] 示例 3&…...
用Java解决华为OD机试考题,真的高效,真的强,来吧,清单奉上,祝你上岸
华为 OD 机试题最新(Java)清单(机试题库还在逐日更新) 题库目录 直接在本页使用 CtrlF,输入题目名称就可以进行检索。 序号文章分值1【华为OD机试真题JAVA】快递装载问题_国服第二切图仔的博客-CSDN博客1002【华为…...

【Stable Diffusion】Stable Diffusion免安装在线部署教程
一、开启Google Colab网址 官网:https://colab.research.google.com/ 点击添加代码: 二、执行如下代码指令 !pip install --upgrade fastapi0.90.1 !git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui !git clone https://github.…...

Jetson设备如何接调试串口工具查看内核打印信息
方便小白使用如下教程。 一、认识USB转串口调试工具转接小板 和硬件连接方式 如图,是一款USB TO TTL转换板,这款小板支持3种供电模式:对外输出5V、对外输出3.3V和由外部供电。正面有一个跳帽,跳帽跳到3V3,小板由US…...

一直被低估的美图,正悄悄成为AIGC领跑者
【潮汐商业评论/原创】 也许多年之后再回望历史,2023年将被视为标志性的一年。它不仅是疫情之后的复苏之年,更是人工智能在中国乃至全球迎来爆发的一年。 从来没有这样的景象——在2023年的前3个月,全球互联网被AIGC话题“刷屏”࿰…...

JAVA开发与运维(JavaWeb测试环境搭建)
本例子测试环境搭建在腾讯云平台之上。 系统架构: 微服务EurekaApollogateWayredisrocketMqOSSsparkETLmysqlpgsqlclickHouseSLB. 首先需要申请的云资源。 业务用途CPUMEMDisk数量云产品规格服务器应用服务(部署微服务)4核8G500G1CVMS6.L…...
python 的range函数你需要知道三件事
python 的range函数你需要知道三件事python 的range() 函数你需要知道三件事一、range函数的功能和语法二、range函数转化为数组三、range函数与for语句的应用python 的range() 函数你需要知道三件事 一、range函数的功能和语法 **1、range函数的功能:**range&…...

穿越周期的进击,科沃斯“敢”于变革
文|智能相对论 作者|佘凯文 什么样的扫地机器人才是一款好的扫地机器人? 回答这个问题我们首先要明白扫地机器人的产品逻辑究竟是什么。简单来说,就是替代人们完成一定环境内的清洁工作,它能完成的“清洁程度”越深则代表其产品力越强。 …...
不使用IF语句对一组数进行排序的分析和实现
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、不使用IF语句的两数排序方法二、不使用IF的多数排序讨论1、三数比较和排序2、多个数据比较和排序总结前言 这个题目源于已经完成了不使用IF语句对两个数的比…...

在大厂做了5年测试,3月被无情辞退,想给摸鱼的兄弟提个醒
先简单交代一下背景吧,某不知名 985 的本硕,17 年毕业加入字节,以“人员优化”的名义无情被裁员,之后跳槽到了有赞,一直从事软件测试的工作。之前没有实习经历,算是5年的工作经验吧。 这5年之间完成了一次…...
【职业规划】第二篇:程序员分级之中级程序员
Java程序员的分级并没有统一的标准,以下列举出来的只是我所理解的关于Java工程师的划分标准,不喜勿喷,如有建议,欢迎评论或私信。 二、Java中级程序员(又名:Java中级工程师/Java中级开发) 1.级别介绍与职责 简单一句话总结中级程序员就是:知道是什么。 具体些就是,…...

Studio One没有声音怎么办 Studio One工程没有声音
Studio One是一款非常优秀编曲软件,能够帮助用户高效的进行编曲和创作,也是目前主流的通道机架软件之一,受到很多音乐编曲爱好者的追捧。但是很多刚接触这款软件的小伙伴会碰到这样或者那样的问题,比如Stuidio one没有声音怎么办&…...
x86架构利用docker去编译arm64的应用程序
文章目录1. 交叉编译:toolchain2. 隔离挂载的方式:3. QEMU 或其他模拟器来实际运行dockerx86架构实现多平台系统代码的编译,实现方式有多种:交叉编译:toolchain 【新的第三方库不好处理】隔离挂载的方式 【速度慢&…...
华为OD机试题 - 优秀学员统计(JavaScript)| 机考必刷
更多题库,搜索引擎搜 梦想橡皮擦华为OD 👑👑👑 更多华为OD题库,搜 梦想橡皮擦 华为OD 👑👑👑 更多华为机考题库,搜 梦想橡皮擦华为OD 👑👑👑 最近更新的博客 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为…...

Nginx学习(7)—— 过滤模块(filter)
文章目录过滤模块简介执行时间和内容执行顺序Nginx是怎么按照次序依次来执行各个过滤模块的呢这些过滤模块的简述(按执行顺序)模块编译过滤模块分析相关结构体响应头过滤函数响应体过滤函数主要功能介绍发出子请求优化措施过滤模块简介 执行时间和内容 …...
【创作赢红包】
1、IoC\nIoC(Inversion of Control,控制反转)是一种软件设计思想,它的核心思想是将对象之间的依赖关系交给容器来管理,从而降低对象之间的耦合度,提高代码的灵活性和可维护性。\n\n在传统的编程模式中&…...

Mybatis入门
1. 框架 框架相当于是一个脚手架,内部已经写好了很多代码,我们只要其基础上进行开发就可以提高我们的开发效率 框架阶段学习: ①先去学习如何使用框架 ②然后再使用熟练的情况下去猜测内部的原理 ③通过源码去验证自己的猜测。 2.Mybat…...

金色传说:SAP-PP-CO01/CO02 生产订单下达保存时报错:用户状态 新建 是活动的 (ORD %00000000001) 消息号BS014
文章目录问题描述一、原因分析:二、解决方案:总结问题描述 某一特殊订单类型的生产订单下达保存时,出现报错提示:用户状态 新建 是活动的 (ORD %00000000001) 报错的消息号为BS014 一、原因分析: 既然是某一特殊订单类型才出现报错,那么问…...

@Transactional和synchronized同时使用时的一些问题以及解决
Transactional和synchronized同时使用并不能保证事务一致性背景任何事情都有一个发生背景有个需求【一个业务里面包含多个事务,而且还需要避免其他线程的影响,所幸的是该服务只需要启动单实例,不然还要考虑分布式的影响】我的思路就是用Transactional 和 synchronized来保证事务…...
贪心-根据身高重建队列
假设有打乱顺序的一群人站成一个队列,数组 people 表示队列中一些人的属性(不一定按顺序)。每个 people[i] [hi, ki] 表示第 i 个人的身高为 hi ,前面 正好 有 ki 个身高大于或等于 hi 的人。 请你重新构造并返回输入数组 peopl…...
CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型
CVPR 2025 | MIMO:支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题:MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者:Yanyuan Chen, Dexuan Xu, Yu Hu…...

python/java环境配置
环境变量放一起 python: 1.首先下载Python Python下载地址:Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个,然后自定义,全选 可以把前4个选上 3.环境配置 1)搜高级系统设置 2…...

UDP(Echoserver)
网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法:netstat [选项] 功能:查看网络状态 常用选项: n 拒绝显示别名&#…...

从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路
进入2025年以来,尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断,但全球市场热度依然高涨,入局者持续增加。 以国内市场为例,天眼查专业版数据显示,截至5月底,我国现存在业、存续状态的机器人相关企…...

蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练
前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1):从基础到实战的深度解析-CSDN博客,但实际面试中,企业更关注候选人对复杂场景的应对能力(如多设备并发扫描、低功耗与高发现率的平衡)和前沿技术的…...

《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》
在注意力分散、内容高度同质化的时代,情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现,消费者对内容的“有感”程度,正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中࿰…...

【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力
引言: 在人工智能快速发展的浪潮中,快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型(LLM)。该模型代表着该领域的重大突破,通过独特方式融合思考与非思考…...

华硕a豆14 Air香氛版,美学与科技的馨香融合
在快节奏的现代生活中,我们渴望一个能激发创想、愉悦感官的工作与生活伙伴,它不仅是冰冷的科技工具,更能触动我们内心深处的细腻情感。正是在这样的期许下,华硕a豆14 Air香氛版翩然而至,它以一种前所未有的方式&#x…...

HashMap中的put方法执行流程(流程图)
1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中,其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下: 初始判断与哈希计算: 首先,putVal 方法会检查当前的 table(也就…...

springboot整合VUE之在线教育管理系统简介
可以学习到的技能 学会常用技术栈的使用 独立开发项目 学会前端的开发流程 学会后端的开发流程 学会数据库的设计 学会前后端接口调用方式 学会多模块之间的关联 学会数据的处理 适用人群 在校学生,小白用户,想学习知识的 有点基础,想要通过项…...