链表:链表中倒数最后k个结点

115 阅读1分钟

image.png

方法: 声明两个快慢指针,快指针先走K步,然后再以为相同的速度一起走,等快指针到地方时,慢指针就刚好在倒数第k个节点处。

function FindKthToTail( pHead ,  k ) {
    // write code here
    let slow = pHead;
    let fast = pHead;
    for(let i = 0; i < k; i++) {
        if(!fast) return null;
        fast = fast.next;
    }
    while(fast) {
        fast = fast.next;
        slow = slow.next;
    }
    return slow; 
}