Leetcode.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
进阶:你能尝试使用一趟扫描实现吗?
分享解题思路,使用【链表】算法
🔸解题思路
1.创建虚拟节点,设下一个指针链表头部
创建两个指针,慢指针和快指针,初始化为虚拟节点
2.让快指针移动到最后一个节点,并且比慢指针快n+1步
3.移动两指针,让两指针到达链表的末尾
4.【删除节点】的上一个节点指向【删除节点】的下一个节点,也就是直接跳过删除节点来做删除节点操作
5.返回虚拟节点,又从头开始有一个新链表
# Definition for singly-linked list. class ListNode: def __init__(self, val=0, next=None): self.val = val self.next = next class Solution: def removeNthFromEnd(self, head: ListNode, n: int) -> ListNode: dummyhead = ListNode(0, head) fast = slow = dummyhead for i in range(n + 1): fast = fast.next while fast: fast = fast.next slow = slow.next slow.next = slow.next.next return dummyhead.next if __name__ == '__main__': a = Solution() head = [1, 2, 3, 4, 5] n = 2 print(a.removeNthFromEnd(head,n))
声明 欢迎转载,但请保留文章原始出处:) 博客园:https://www.cnblogs.com/chenxiaomeng/
如出现转载未声明 将追究法律责任~谢谢合作
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
2022-03-12 JZ44 数字序列中某一位的数字
2021-03-12 python学习笔记(四)---函数式编程
2018-03-12 Ubuntu上的相关问题