給定乙個鍊錶,刪除鍊錶的倒數第 n 個節點,並且返回鍊錶的頭結點。
示例:
給定乙個鍊錶: 1->2->3->4->5, 和 n = 2.
當刪除了倒數第二個節點後,鍊錶變為 1->2->3->5.
我們可以使用兩個指標而不是乙個指標。第乙個指標從列表的開頭向前移動 n+1 步,而第二個指標將從列表的開頭出發。現在,這兩個指標被 n個結點分開。我們通過同時移動兩個指標向前來保持這個恆定的間隔,直到第乙個指標到達最後乙個結點。此時第二個指標將指向從最後乙個結點數起的第n個結點。我們重新鏈結第二個指標所引用的結點的 next 指標指向該結點的下下個結點。
var removenthfromend = function(head, n)
if (!first) return head.next; // 當鍊表長度為n時,刪除第乙個節點
let second = head; // 快指標
while (first.next)
second.next = second.next.next;
return head;
};
鍊錶 刪除鍊錶的倒數第N個節點
給定乙個鍊錶,刪除鍊錶的倒數第 n 個節點,並且返回鍊錶的頭結點。示例 給定乙個鍊錶 1 2 3 4 5,和n 2.當刪除了倒數第二個節點後,鍊錶變為1 2 3 5.說明 給定的 n 保證是有效的。高階 你能嘗試使用一趟掃瞄實現嗎?definition for singly linked list....
鍊錶 刪除鍊錶的倒數第N個節點
給定乙個鍊錶,刪除鍊錶的倒數第 n 個節點,並且返回鍊錶的頭結點。示例 給定乙個鍊錶 1 2 3 4 5,和 n 2.當刪除了倒數第二個節點後,鍊錶變為 1 2 3 5.說明 給定的 n 保證是有效的。思路 精髓!弄個啞節點,可以直接避免節點數只有乙個的情況。先都指向啞節點,fast先走n 1步。然...
鍊錶 刪除鍊錶的倒數第 N 個結點
記錄 於leetcode 在對鍊錶進行操作時,一種常用的技巧是新增乙個啞節點 dummy node 它的next 指標指向鍊錶的頭節點。這樣一來,我們就不需要對頭節點進行特殊的判斷了。例如,在本題中,如果我們要刪除節點 y,我們需要知道節點 y 的前驅節點 x,並將 x 的指標指向 y 的後繼節點。...