遍历两遍。
第一遍计算链表长度len。
如果len < k,直接返回null。
第二遍找到倒数第k个结点。也就是返回正数len - k的位置的结点。
需要注意的是k=0和k=len的情况。
function FindKthToTail( pHead , k ) {
// write code here
let len = 0;
let p = pHead;
while (p !== null) {
len++;
p = p.next;
}
if (len < k) {
return p;
}
let index = len - k;
let count = 0;
p = pHead;
while (p !== null) {
if (count >= index) {
return p;
}
p = p.next;
count++;
}
return p;
}
module.exports = {
FindKthToTail : FindKthToTail
};