leetcode19 刪除倒數第n個節點

2021-08-28 16:44:01 字數 419 閱讀 1892

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...