LeeCode题库第十九题
- 创业
- 2025-09-08 04:57:01

项目场景:
给你一个链表,删除链表的倒数第 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]提示:
链表中结点的数目为 sz1 <= sz <= 300 <= Node.val <= 1001 <= n <= sz问题描述
这题通过初始化两个节点first和second,首先将first向后移动n次,这样两个节点之间就差n个节点,当first不为空时,一直向后移动两个节点,直至first为空,两者之间差n个,则second为倒数n+1个,second.next为倒数第n个, second.next=second.next.next即可,最后返回头结点dummy.next,不返回head是因为如果n为1,head也会被改变,所以使用dummy虚拟节点,返回dummy.next。
# 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: Optional[ListNode], n: int) -> Optional[ListNode]: dummy=ListNode(0,head) first=head second=dummy for i in range(n): first=first.next while first: first=first.next second=second.next second.next=second.next.next return dummy.next本题提交情况。
以上为本篇文章的全部内容,感谢你抽出宝贵的时间阅读这篇文章。如果你有任何疑问或建议,欢迎在评论区留言,我们一起交流进步。愿你的代码之路越走越顺,生活充满阳光!
LeeCode题库第十九题由讯客互联创业栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“LeeCode题库第十九题”