LC 速查

HOT 100索引 › B7 链表 Linked List

LC 19删除链表的倒数第 N 个结点Remove Nth Node From End of List 中等

删除链表倒数第 n 个节点并返回头节点,力争只扫一遍。

思路 前后双指针间隔 n:fast 先走 n 步再同步走,slow.next 即待删节点;哑结点简化删头。时间 O(n)。

class Solution:
    def removeNthFromEnd(self, head, n):
        dummy = ListNode(0, head)
        fast = slow = dummy
        for _ in range(n):
            fast = fast.next
        while fast.next:
            fast = fast.next
            slow = slow.next
        slow.next = slow.next.next
        return dummy.next
← 上一题 两数相加两两交换链表中的节点 下一题 →