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