def removenthfromend(self, head, n):
"""定義兩個指標,表示兩個元素的間隔,間隔大小固定為n-1,兩個指標分別為pre,end
"""pre = head
end = head
for _ in range(n):
end = end.next
if end is none: # 需要刪除的節點為第乙個節點時,即返回第二個節點為頭節點的鍊錶
return head.next
while end.next is not none:
pre = pre.next
end = end.next
pre.next = pre.next.next
return head
Leetcode 19 刪除鍊錶的倒數第N個節點
給定乙個鍊錶,刪除鍊錶的倒數第 n 個節點,並且返回鍊錶的頭結點。示例 給定乙個鍊錶 1 2 3 4 5,和 n 2.當刪除了倒數第二個節點後,鍊錶變為 1 2 3 5.說明 給定的 n 保證是有效的。高階 你能嘗試使用一趟掃瞄實現嗎?解法 看到這種鍊錶求倒數n的題就想到了用前後指標,類似的題目還有...
leetcode19 刪除鍊錶的倒數第N個節點
給定乙個鍊錶,刪除鍊錶的倒數第 n 個節點,並且返回鍊錶的頭結點。示例 給定乙個鍊錶 1 2 3 4 5,和 n 2.當刪除了倒數第二個節點後,鍊錶變為 1 2 3 5.說明 給定的 n 保證是有效的。高階 你能嘗試使用一趟掃瞄實現嗎?definition for singly linked lis...
LeetCode 19 刪除鍊錶的倒數第N個節點
definition for singly linked list.struct listnode class solution 如果確實p能走n步,那說明鍊錶中至少有n個元素,這時才能進行刪除操作,否則要直接返回原鍊錶 if p nullptr return head p和q一起走,直到p nex...