【双指针-中等】19. 删除链表的倒数第 N 个结点

详解“删除链表的倒数第N个结点”算法 删除链表的倒数第N个结点”问题通过常规的两次遍历计算长度法和巧妙的双指针法都可以解决。双指针法在代码实现上更加简洁,在实际应用中,对于链表相关的操作,双指针技巧是非常实用的,可以帮助我们更高效地解决许多类似的问题。希望通过这篇博客,大家能对这个算法问题有更深入的理解,在算法学习和编程实践中不断进步。这条消息已经在编辑器中准备就绪。你想如何调整这篇文档?请随时告诉我。 阅读详情

【题目】

【代码】
【方法1】在head之前设置提供特殊节点mute用于保存head,mute的next指针指向head节点。
在这里插入图片描述

class Solution:
    def removeNthFromEnd(self, head: Optional[ListNode], n: int) -> Optional[ListNode]:
        mute=ListNode()
        mute.val=-1
        mute.next=head
        fast=head
        slow=head
        pre=mute
        while n:
            n-=1
            fast=fast.next
        while fast:
            pre=slow
            slow=slow.next
            fast=fast.next
        pre.next=slow.next
        return mute.next

【方法2】
没有头部多余的节点
在这里插入图片描述

class Solution:
    def removeNthFromEnd(self, head: Optional[ListNode], n: int) -> Optional[ListNode]:
        origin=head
        del_p=head
        pre=head
        while n and head.next:
            n-=1
            head=head.next
        if n!=0:
            return origin.next
        while head:
            head=head.next
            pre=del_p
            del_p=del_p.next
        pre.next=del_p.next
        return origin
RK3568平台 麦克风PDM接口录音_rk pdm配置 在RK平台,Android的Audio HAL层中一般会都会有导出录音播放数据的功能。如播放的,是会直接送到声卡中的,对于播放出现问题的情况,可以从分析导出的音频数据是否正常,可以基本知道,是在应用、解码出现的问题,还是送到声卡过程中出现问题。当点开app进行录音的时候会调用到static int start_input_stream(struct stream_in *in)。音频在PDM接口输入,不经过编解码芯片直接到RK主芯片,RK主芯片自带PCM编解码功能。以下软件能播放保存下来的pdm文件。 阅读详情

相关推荐

FDTD Script命令学习-farfield3d/farfieldux/farfielduy

介绍了farfield3d/farfieldux/farfielduy命令功能,及不同应用语法和参数介绍,以及对官网示例进行介绍。

jxxl_1314的博客 3099

LeetCode_双指针_中等_19.删除链表的倒数第 N 个结点

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

代码星辰的博客 341

你不必懂AI,但必须会用AI:写给所有焦虑中的职场人

AI时代不必焦虑学技术,关键在于用AI解决实际问题。文章指出,99%的人只需成为AI使用者而非建造者,核心竞争力在于结合业务痛点运用AI工具提升效率。与其盲目学习工具,不如梳理工作流程,识别可优化环节,让AI赋能重复性、标准化任务。行业经验与AI工具的结合才是真正的职场护城河。建议从具体工作场景出发,寻找匹配的AI解决方案,迈出应用第一步。

hundred98的博客 720

19. 删除链表的倒数第 N 个结点(中等 链表 双指针)

19. 删除链表的倒数第 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 来源:

weixin_43942435的博客 82

避坑指南:Spring3集成OpenAPI时泛型响应失效的3种解决方案

本文深入探讨了Spring3集成OpenAPI时泛型响应失效的问题,提供了三种实用解决方案:移除@Schema注解、使用@ArraySchema包装泛型以及自定义Schema处理器。针对不同项目规模,详细分析了各方案的适用场景、优缺点及性能影响,帮助开发者高效生成准确的接口文档,提升前后端协作效率。

weixin_30839881的博客 101

SAP CO模块实战:成本中心会计分割结构配置全流程(OKES事务码详解)

本文详细解析了SAP CO模块中成本中心会计分割结构的配置全流程,重点讲解了OKES事务码的实战操作。内容涵盖分割结构的概念理解、配置前的次级成本要素与作业类型主数据准备,并通过步骤拆解演示了如何定义分割结构、规则与版本,以及如何将配置关联到成本中心并执行分割。最后提供了常见问题排查与优化建议,旨在帮助顾问及财务人员掌握成本精确分摊的关键配置,确保期末成本核算的准确性。

embedding5hiker的博客 806

【LeetCode-中等】19. 删除链表的倒数第 N 个结点 - 双指针

19. 删除链表的倒数第 N 个结点 在 head 前添加哑节点 dummy ,使头节点 head 无需特殊处理。 解法一:计算链表长度 /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(n

ASDF的博客 309

葵花(Himawari)8/9卫星数据处理

李国春 葵花8(含葵花9,下同)是静止气象卫星,数据范围是星下点为140°E赤道上空的大圆盘。空间分辨率有500m、1km和2km三种。虽然其空间分辨率不高,但是有极高的时间分辨率,观测数据刷新仅10分钟。这对一些生态、农业和大范围自然灾害的动态检测具有非常高的应用价值。本文介绍如何使用RSD处理葵花8数据。

副组长的博客 1万+

Leetcode19. 删除链表的倒数第 N 个结点(中等)双指针

struct ListNode* removeNthFromEnd(struct ListNode* head, int n){ struct ListNode* dummyHead = (struct ListNode*)malloc(sizeof(struct ListNode)); dummyHead->next = head; struct ListNode*slow=dummyHead,*fast=dummyHead; for(

m0_48711099的博客 648

[Dify实战] 多轮对话状态管理:上下文保持与槽位填充

本文探讨了基于LLM的对话应用中多轮对话状态管理的核心挑战与解决方案。文章指出,单纯的"能聊"远远不够,关键在于建立有效的状态管理机制,包括上下文保持和槽位填充两大核心能力。通过Dify实战视角,详细阐述了如何设计工程化落地方案:采用混合策略的上下文管理(窗口+摘要+关键槽位)、JSON Schema强约束的槽位抽取、统一状态对象存储、冲突处理机制和优化追问策略。文章特别强调,合理的状态管理能将"聊天"转化为"可执行的业务流程",避免模型成为&qu

技术小甜甜:传播可落地技术,帮助个人和企业降低解决真实场景问题的成本 240

「深度学习之优化算法」笔记(二)优化算法的分类

但是由于生物的局限性,人们所创造出的算法也会有局限性:我们所熟知的生物都生存在三维空间,在这些环境中,影响生物生存的条件比较有限,反应到算法中就是这些算法在解决较低维度的问题时效果很好,当遇到超高维(维度>500)问题时,结果可能不容乐观,没做过实验,我也不敢乱说。当然,他们的目的不是在最佳狩猎位置集合,他们的目的是在过去的途中看是否能发现更加好的狩猎位置,去往已经到过的狩猎地点再次狩猎是没有意义的,因为每个位置获取食物的难易程度是固定的。如果他们的策略是“不跟随最优解”,那么他们的策略是什么呢?

quanzhan_King的博客 1371

LeetCode 面试经典 150_链表_删除链表的倒数第 N 个结点(62_19_C++_中等)(利用链表长度;双指针)

LeetCode 面试经典 150_链表_删除链表的倒数第 N 个结点(62_19_C++_中等) 题目描述: 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。

huayimenghan的博客 535

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

LeetCode-中等进阶-19-删除链表的倒数第 N 个结点-双指针实现一趟扫描(C)

文章首发及后续更新:https://mwhls.top/1600.html 新的更新内容请到mwhls.top查看。 无图/无目录/格式错误/更多相关请到上方的文章首发页面查看。 题目 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 进阶:你能尝试使用一趟扫描实现吗? 示例 1: 输入:head = [1,2,3,4,5], n = 2输出:[1,2,3,5]示例 2: 输入:head = [1], n = 1输出:[]示例 3: 输入

asd123pwj的博客 161

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

LeetCode 热题 100_删除链表的倒数第 N 个结点(29_19_中等_C++)(单链表;双指针)(new_delete)

LeetCode 热题 100_删除链表的倒数第 N 个结点(29_19) 题目描述: 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。

huayimenghan的博客 986

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

LeetCode 第 19 号问题:删除链表的倒数第 N 个节点

本文首发于公众号「五分钟学算法」,是图解 LeetCode 系列文章之一。 个人网站:https://www.cxyxiaowu.com 题目来源于 LeetCode 上第 19 号问题:删除链表的倒数第 N 个节点。题目难度为 Medium,目前通过率为 34.4% 。 题目描述 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。 ...

程序员吴师兄的博客 307

【数据结构与算法】返回链表的中间结点、删除链表的倒数第 N 个结点

本篇博客我们讲解了两道经典例题,第二道题是第一道的进阶,会了第二道题,我们就会了一类题,无论让我们找链表的第几个节点我们都能轻松找到,通过这两道题的学习,相信你对链表会更加熟悉!

熬夜秃顶中...... 2909

[leetcode] 19. 删除链表的倒数第 N 个结点

[leetcode] 19. 删除链表的倒数第 N 个结点

lvhao123456789的博客 1207

双指针解leetCode19题“删除链表的倒数第 N 个结点”有感

双指针解leetCode19题“删除链表的倒数第 N 个结点”有感!列举了我做这道题的一些困惑,不知道大家有没有类似的感受。

Zlwjiayou的博客 1763

【数据结构】【线性表】【练习】删除链表倒数第n个结点

回顾链表结点的删除,最重要的步骤是:找到要被删除的结点的前驱结点,修改其next指向要被删除结点的后继结点。,将虚拟头指针的next指向原链表的第一个结点,暂时供链表使用。在使用完成后,注意输出时的结点要从虚拟头结点的next结点,摒弃头结点,保持输入输出链表结构的一致性。L为头结点,它和其他结点没有本质上没有区别,但其本身不存储数据,它的next指针指向第一个结点,从第一个结点开始才算链表的真正数据主体。这里我们需要注意,这里的L不是结点,只是一个指针,它没有next,而是直接指向第一个结点。

weixin_58498967的博客 1600

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

本文介绍了删除链表倒数第N个节点的三种解法,重点推荐双指针法。通过设置哑结点统一处理边界情况,快指针先走N步后,快慢指针同步移动,当快指针到尾时慢指针指向待删节点的前驱。代码实现包含链表构建和转换工具函数,并验证了三个示例(删除中间、尾部和头节点)。时间复杂度O(sz),空间复杂度O(1)。

qq_32019341的博客 1239

算法leetcode|19. 删除链表的倒数第 N 个结点(rust重拳出击)

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

二当家的白帽子 1170

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

本文介绍了删除链表倒数第N个节点的双指针解法。通过定义虚拟头节点和快慢指针,先让快指针移动n步,然后同时移动快慢指针直至快指针到末尾,此时慢指针指向待删除节点的前驱节点。该方法时间复杂度O(L)(L为链表长度),空间复杂度O(1)。关键点在于虚拟头节点的使用可避免对头节点的特殊处理,而快慢指针的配合能精确定位倒数第N个节点。

mrjieke6的博客 1081

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

fast 先走 n 步,然后 slow、fast 才同时走,则 slow 和 fast 将会一直保持 n 步的差距,那么当 fast 越界时(即 fast == null 时),slow 就处于倒数第 n 个节点。因此,我们想要删除倒数第 n 个节点,则需要找到倒数第 n+1 个节点,按照前面slow、fast指针逻辑,则当fast走到倒数第1个节点时,slow位于倒数第n+1个节点位置。但是本题的链表是单向链表,即当前节点只能通过next找到下一个节点,而无法找到上一个。给你一个链表,删除链表的倒数第。

优快云 1303

【算法】删除链表的倒数第 N 个结点

本文深入探讨了删除链表倒数第N个结点的算法,通过示例代码和详细解析,展现了其高效与灵活性。未来,随着技术发展,链表操作算法将更加智能和高效,为复杂系统设计提供坚实基础。希望本文能激发你对链表操作的兴趣,探索更多高效算法,提升你的编程技艺。欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。DTcode7的博客首页。一个做过前端开发的产品经理,经历过睿智产品的折磨导致脱发之后,励志要翻身农奴把歌唱,

一个做过前端开发的产品经理,经历过睿智产品的折磨导致脱发之后,励志要翻身"农奴"把歌唱,一边打入敌人内部一边持续提升自己,为我们广大开发同胞谋福祉,坚决抵制睿智产品折磨我们码农兄弟! 884

Java每日一题——>19. 删除链表的倒数第 N 个结点

题目 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 示例1 输入:head = [1,2,3,4,5], n = 2 输出:[1,2,3,5] 示例2 输入:head = [1], n = 1 输出:[] 示例2 输入:head = [1,2], n = 1 输出:[1] 题解 定义两个指针front,back指向头结点 第1个指针front从链表的头结点开始遍历k步,第2个指针back保持不动; 从第k+1步开始指针back也从链表的头结点开始和指针front以相同

stormzhuo的博客 1万+

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

先从头到尾遍历链表,得到链表的长度count,结点编号从1开始起算的话,第(count - n + 1)个结点就是要删除的结点。leetcode官方题解,给出的办法是再遍历一次,遍历到第count-n+1个结点就可以做删除操作了。我用的是用空间换时间,第一次遍历的时候用哈希表把所有结点的地址存起来,哈希键就是结点的序号,这样就不用第二次遍历链表,但同时增加了空间开销。题目说结点的数目是1到30个,所以哈希表ListNode* nodes[31]。

weixin_41554427的博客 708
上一篇: 【双指针-简单】876. 链表的中间结点
下一篇: 【广度优先搜索/深度优先搜索-简单】617. 合并二叉树
菜菜2022
博客等级 码龄9年 67粉丝 1033原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值