https://leetcode.cn/problems/remove-nth-node-from-end-of-list/
给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。
示例 1:
输入:head = [1,2,3,4,5], n = 2
输出:[1,2,3,5]
示例 2:
输入:head = [1], n = 1
输出:[]
class Solution:
def removeNthFromEnd(self, head: ListNode, n: int) -> ListNode:
dummy = ListNode()
dummy.next = head
slow, fast = dummy, dummy
# fast往前走n步
while n > 0:
fast = fast.next
n -= 1
# fast和slow同时往前走,走到fast.next为空,此时slow.next就是要删除的节点
while fast and fast.next:
fast = fast.next
slow = slow.next
# slow指向下下个节点,指定节点被删除
slow.next = slow.next.next
return dummy.next