题目描述
输入一个链表,输出该链表中倒数第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;
}