參考: ,寫的特別好。以下是我的實現:
題目給定乙個鍊錶,刪除鍊錶的倒數第 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 個節點...