題目:輸入乙個單向鍊錶,輸出該鍊錶中倒數第 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...