题目描述: alt 解题思路:

假设此时k=2,设一个循环使得快指针指节点k处(快指针的作用是使得代码while中的循环以固定的长度移动)

alt

再设一个循环使得快慢指针以相同的速度移动

alt

此时就可得到以慢指针为头的后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;
}