LeetCode 刪除鍊錶的倒數第N個節點

2021-09-23 08:09:01 字數 664 閱讀 7299

參考: ,寫的特別好。以下是我的實現:

題目給定乙個鍊錶,刪除鍊錶的倒數第 n 個節點並返回頭結點。

例如,給定乙個鍊錶: 1->2->3->4->5, 並且 n = 2.

當刪除了倒數第二個節點後鍊錶變成了 1->2->3->5.12

3說明:

給的 n 始終是有效的。

嘗試一次遍歷實現。

解法很簡單的一道題,既然只允許遍歷一次,且n一直有效,那麼可以利用雙指標解法(前指標、後指標),讓前指標先走n步,再讓兩個在指標同時後移,直到前指標到達尾部,此時,後指標的下乙個節點就是要被刪除的節點了。

@test

public void test()

public listnode removenthfromend(listnode head, int n)

if (curnode == null)

while (curnode.next != null)

prenode.next = prenode.next.next;

return head;

}class listnode

}

LeetCode鍊錶 19刪除鍊錶的倒數第N個節點

給定乙個鍊錶,刪除鍊錶的倒數第 n 個節點,並且返回鍊錶的頭結點。示例 給定乙個鍊錶 1 2 3 4 5,和 n 2.當刪除了倒數第二個節點後,鍊錶變為 1 2 3 5.說明 給定的 n 保證是有效的。高階 你能嘗試使用一趟掃瞄實現嗎?我採取一次掃瞄來實現。1.定義兩個指標,令他們相隔n的距離,則前...

LeetCode打卡練習之刪除鍊錶的倒數第N個節點

這道題目也十分簡單,但是用的方法非常重要,在鍊錶操作中也有大應用。刪除鍊錶倒數第n個節點,可以使用快慢指標法,快指標先出發,到達n時慢指標出發,快指標到達終點時,慢指標就會到達倒數第n個節點。其實鍊錶很多情況下都可以用 運動學 知識來解題,比如同樣的取排序鍊錶中位數也可以讓快指標速度是慢指標兩倍。但...

LeetCode 鍊錶 刪除鍊錶的倒數第N個節點

給定乙個鍊錶,刪除鍊錶的倒數第 n 個節點,並且返回鍊錶的頭結點。示例 給定乙個鍊錶 1 2 3 4 5,和 n 2.當刪除了倒數第二個節點後,鍊錶變為 1 2 3 5.說明 給定的 n 保證是有效的。高階 你能嘗試使用一趟掃瞄實現嗎?題目鏈結 鍊錶倒數第 n 個節點就是正數的第 len n 個節點...