leetcode19. 删除链表的倒数第 N 个结点-代码

时间:2024-02-16 14:01:10
class Solution:
    def removeNthFromEnd(self, head: Optional[ListNode], n: int) -> Optional[ListNode]:
        pre_head = ListNode(val=0, next=head)
        node_right = pre_head
        node_left = pre_head

        for i in range(n+1):  # 快指针比慢指针快 n+1 步,方便删除
            node_right = node_right.next

        while node_right:
            node_right = node_right.next
            node_left = node_left.next

        node_left.next = node_left.next.next

        return pre_head.next