题目描述: 解题思路:
假设此时k=2,设一个循环使得快指针指节点k处(快指针的作用是使得代码while中的循环以固定的长度移动)
再设一个循环使得快慢指针以相同的速度移动
此时就可得到以慢指针为头的后k个节点,因此返回slow
解题代码:
function FindKthToTail( pHead , k ) {
// write code here
let fast = pHead;
let slow = pHead;
for (let i = 0; i < k; i++) {
if(fast == null) return null;
fast = fast.next; // 将fast移到k 处
}
while(fast != null) {
// 使fast slow以相同的速度移动
fast = fast.next;
slow = slow.next;
}
return slow;
}