当前位置: 首页 > Linux

19、删除链表倒数第二个N节点

时间:2023-04-07 01:52:48 Linux

知乎ID:码脚病码脚病,毕业于哈尔滨工业大学。小米广告第三代广告引擎设计开发者;负责小米应用商店、日历、开屏广告业务线的研发;主导小米广告引擎多个模块的重构;专注于推荐、搜索、广告等领域的相关知识;定义一个链表,删除链表的倒数第n个节点,返回链表的头节点。示例:给定一个链表:1->2->3->4->5,且n=2。当删除倒数第二个节点时,链表变为1->2->3->5。说明:给定的n保证有效。Advanced:可以尝试使用one-passscan实现吗?分析链表的问题,基本都是优先考虑双指针。一个指针先走N步,然后两个指针同步移动到链表尾部,移除前一个指针指向的节点。但是越简单的题目越需要考虑边界条件,不要掉坑里,具体看代码,争取一个Bugfree.Code/***单链表的定义。*公共类ListNode{*intval;*接下来是ListNode;*ListNode(intx){val=x;}*}*/classSolution{publicListNoderemoveNthFromEnd(ListNodehead,intn){ListNoderight=head;ListNodeleft=head;for(inti=0;i