問題形貌
輸入一個鏈表,輸出該鏈表中倒數第k個結點。
剖析
本題重要注重以下幾點:
- k是不是正當,比方k大於鏈表長度了就不正當、k<=0也不正當
- 倒數的第k個,關於長度為len的鏈表來講,就是正數第len-k+1個,所以得先遍歷一次鏈表求出長度
代碼完成
/*function ListNode(x){
this.val = x;
this.next = null;
}*/
function FindKthToTail(h, k)
{
if(h === null || k <= 0)
return null;
var len = 0;
var cur = h;
while(cur !== null) {
len++;
cur = cur.next;
}
if(k > len){
return null;
}
var index = len - k + 1;
cur = h;
while(index !== 1){
cur = cur.next;
index--;
}
return cur;
}