常見演算法之19 輸出鍊錶的倒數第k個節點

2022-03-14 17:22:40 字數 414 閱讀 2558

題目:輸入乙個單向鍊錶,輸出該鍊錶中倒數第 k 個結點。

方案一:先遍歷一遍,獲取到鍊錶的長度n,然後從頭再走n-k步。

分析:相當於遍歷兩遍,第一遍是為了獲得鍊錶的長度,而第二遍是找到倒數第k個節點。

方案二:

乙個盲人怎麼才能知道他到牆的距離是d?

他可以拿乙個長度為d的桿子,當桿子碰到牆了,此時他到牆的距離就是d了。

基於上面的思想:

1.指定乙個新的指標p,走k步。如果k步之內就到了null,顯然無倒數第k這說法,返回錯誤即可。

2.新指標p到位後,在初始節點再設定乙個新的指標root,然後兩個指標一起走。當p為null時,輸出root所指的節點即可。

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

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

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

給定乙個鍊錶,刪除鍊錶的倒數第 n 個節點,並且返回鍊錶的頭結點。示例 給定乙個鍊錶 1 2 3 4 5,和 n 2.當刪除了倒數第二個節點後,鍊錶變為 1 2 3 5.說明 給定的 n 保證是有效的。高階 你能嘗試使用一趟掃瞄實現嗎?說實話,就我的水平而言感覺這道題坑點還真不少,先來我的乙個粗糙版...

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

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