LeetCode 19. 刪除連結串列的倒數第N個節點
阿新 • • 發佈:2020-12-20
19. 刪除連結串列的倒數第N個節點
Difficulty: 中等
給定一個連結串列,刪除連結串列的倒數第_n_個節點,並且返回連結串列的頭結點。
示例:
給定一個連結串列: 1->2->3->4->5, 和 n = 2.
當刪除了倒數第二個節點後,連結串列變為 1->2->3->5.
說明:
給定的 n保證是有效的。
進階:
你能嘗試使用一趟掃描實現嗎?
Solution
Language: ****
# Definition for singly-linked list. # class ListNode: # def __init__(self, val=0, next=None): # self.val = val # self.next = next class Solution: def removeNthFromEnd(self, head: ListNode, n: int) -> ListNode: if not head: return None slow = head tmp = head for _ in range(n): fast = tmp.next tmp = tmp.next if fast: while fast.next: fast = fast.next slow = slow.next slow.next = slow.next.next else: head = head.next return head