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