給定乙個鍊錶,刪除鍊錶的倒數第 n 個節點,並且返回鍊錶的頭結點。
示例:
給定乙個鍊錶:1->2->3->4->5, 和n = 2.說明:當刪除了倒數第二個節點後,鍊錶變為1->2->3->5.
給定的 n 保證是有效的。
高階:
你能嘗試使用一趟掃瞄實現嗎?
建立兩個鍊錶,l1先從第乙個節點訪問到第n個節點,然後l1和l2同時進行掃瞄,當l1掃瞄到鍊錶尾時,l2到倒數第n個節點。
# definition for singly-linked list.
# class listnode(object):
# def __init__(self, x):
# self.val = x
# self.next = none
class solution(object):
def removenthfromend(self, head, n):
""":type head: listnode
:type n: int
:rtype: listnode
"""res = listnode(0)
res.next = head
l1 = res
l2 = res
for i in range(n):
l1 = l1.next
while l1.next:
l1 = l1.next
l2 = l2.next
l2.next = l2.next.next
return res.next
刪除鍊錶倒數第N個節點
1.問題 給定乙個鍊錶,刪除鍊錶的倒數第 n 個節點,並且返回鍊錶的頭結點。示例 給定乙個鍊錶 1 2 3 4 5,和 n 2.當刪除了倒數第二個節點後,鍊錶變為 1 2 3 5.2.演算法 暴力破解法 先計算得出鍊錶的長度m,然後將鍊錶長度和所給倒數字置相減,即loc m n 1,得出刪除節點的前...
刪除鍊錶倒數第n個節點
leetcode 題目 給定乙個鍊錶,刪除鍊錶的倒數第 n 個節點,並且返回鍊錶的頭結點。給定乙個鍊錶 1 2 3 4 5,和 n 2.當刪除了倒數第二個節點後,鍊錶變為 1 2 3 5.note n 鍊錶長度時,刪除頭節點 n 0時,不做任何操作。當第乙個指標first 比第二個指標領先n步,然後...
刪除鍊錶的倒數第N個節點
與查詢鍊錶的倒數第n個節點對比只改動了一行 查到倒數第n個節點後,將該節點的後續指標p1.next p1.next.next 即可 package 鍊錶中 public class nthnodefromendoflist return m 刪除倒數第n個節點 param args public s...