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

2021-07-31 17:36:00 字數 615 閱讀 3350

題目描述:

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

實現如下:

//最後乙個節點定義為倒數第乙個節點

//1->2->3->4->5

//p s

// p s

//eg.尋找倒數第3個節點 k-1=2

//要想一次遍歷找到倒數第k個節點,關鍵在於最後乙個節點與倒數第k個節點之間相差k-1個節點

//所以要保證兩個指標之間一直保持k-1個節點差

//健壯性:

//1.傳入空指標

為無符號正數,k<1

//3.不存在倒數第k個節點

/*節點結構體定義

struct listnode

};*/

class solution

//如果s移動次數都小於兩者必須的間距,說明不存在倒數第k個節點

if (num < k -

1) return

null;

return p;

}};

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

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

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

題目描述 輸入乙個鍊錶,輸出該鍊錶中倒數第k個結點。解決思路 1.備份初始結點 2.計數結點個數 3.判斷是否超出 4.正序遍歷得到第count k個結點 public class solution if countreturn null for int i 0 i這種方法比較笨拙,相當於正序遍歷了...

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

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