給定乙個鍊錶,刪除鍊錶的倒數第n個節點,如何實現

2021-09-26 19:47:08 字數 580 閱讀 7028

給定乙個鍊錶,刪除鍊錶的倒數第 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 的後繼節點。...