给你一个链表,删除链表的倒数第 n
个结点,并且返回链表的头结点。
进阶:你能尝试使用一趟扫描实现吗?
class Solution: def removeNthFromEnd(self, head: ListNode, n: int) -> ListNode: dummy = ListNode(0) dummy.next = head #创造一个新头节点 #step1: 获取链表长度 cur, length = head, 0 while cur: length += 1 cur = cur.next #step2: 找到倒数第N个节点的前面一个节点 cur = dummy for _ in range(length - n): cur = cur.next #step3: 删除节点,并重新连接 cur.next = cur.next.next return dummy.next