文章目录
- 题目链接
- 解题思路
- 解题代码
题目链接
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]
解题思路
解法快慢指针
1.先让快指针走n步
2.用快指针做循环遍历,快慢指针一起走
3.当循环遍历结束,慢指针的下个结点的下个结点作为慢指针的下个结点
4.返回结果的时候,可以直接返回新建头节点的下一位节点
解题代码
class Solution:def removeNthFromEnd(self, head: ListNode, n: int) -> ListNode:newHead = ListNode(0, head)fast = headslow = newHeadwhile n:fast = fast.nextn -= 1while fast:slow = slow.nextfast = fast.nextslow.next = slow.next.nextreturn newHead.next