题目链接:
题目描述:
#19. 删除链表的倒数第N个节点
给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。
示例:
给定一个链表: 1->2->3->4->5, 和 n = 2.
当删除了倒数第二个节点后,链表变为 1->2->3->5.
说明:
给定的 n 保证是有效的。
进阶:
你能尝试使用一趟扫描实现吗?
通过次数205,209 提交次数524,857
分析:
这个题的难度在于如何在一趟扫描中实现,想要找到链表的倒数第 n 个节点,其实就是链表尾和被删节点之间的长度为 n。
可以用 双指针 实现,定义两个指针 i, j
:
i
指向头结点head
,j
指向正数第n
个节点;i, j
同时向后走,当j
走到链表尾时,i
也就走到了倒数第 n 个节点;- 由于我们的目的是删除节