劍指offer14 鍊錶中倒數第k個結點

2021-09-11 07:48:59 字數 590 閱讀 5868

題目描述

輸入乙個鍊錶,輸出該鍊錶中倒數第k個結點。

解決思路:

1.備份初始結點

2.計數結點個數

3.判斷是否超出

4.正序遍歷得到第count-k個結點

public class solution

if(countreturn null;

}for(int i=0;i這種方法比較笨拙,相當於正序遍歷了兩次,顯然不是最優的想法。

劍指offer上提供了乙個新的思路,採用兩個指標,一前一後都從頭結點開始。

前指標走到k的時候,後指標在0,他們兩個之間保持k的距離同步前進,這樣前指標到達尾節點的時候,後指標就位於倒數k節點上。

public class solution

else

}while(p1!=null)

return p2;}}

劍指Offer (14)鍊錶中倒數第k個結點

題目描述 輸入乙個鍊錶,輸出該鍊錶中倒數第k個結點。實現如下 最後乙個節點定義為倒數第乙個節點 1 2 3 4 5 p s p s eg.尋找倒數第3個節點 k 1 2 要想一次遍歷找到倒數第k個節點,關鍵在於最後乙個節點與倒數第k個節點之間相差k 1個節點 所以要保證兩個指標之間一直保持k 1個節...

劍指offer 14 鍊錶中倒數第k個結點

輸入乙個鍊錶,輸出該鍊錶中倒數第k個結點。兩個指標,先讓第乙個指標和第二個指標都指向頭結點,然後再讓第乙個指正走 k 1 步,到達第k個節點。然後兩個指標同時往後移動,當第乙個結點到達末尾的時候,第二個結點所在位置就是倒數第k個節點處。public class listnode public cla...

劍指Offer(14) 鍊錶中倒數第k個結點

輸入乙個鍊錶,輸出該鍊錶中倒數第k個結點。定義兩個指標。第乙個指標從煉表頭開始向後走k步,第二個指標保持不動 從第k 1步開始,第二個指標也開始從鍊錶的頭指標開始遍歷。由於兩個指標的距離保持在k,當第乙個指標到達鍊錶的尾結點後的null時,第二個指標指向的正好是倒數第k個結點。例如 要找倒數第3個結...