剑指Offer JZ14 链表中倒数第k个结点(JavaScript:快慢指针)

时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M 热度指数:25218
本题知识点: 链表

题目描述
输入一个链表,输出该链表中倒数第k个结点。
示例1
输入
{1,2,3,4,5},1
返回值
{5}

思路:快慢指针
首先让快指针走k步,k是倒数第k个结点,
这样快指针走到终点的时候,慢指针刚好走到倒数第k个节点,因为两个指针都走完了一条链,总路程相等。
在这里插入图片描述

function FindKthToTail( pHead ,  k ) {
    
    
    if(!pHead) return null
    let fast = pHead,slow = pHead
    while(k){
    
    
        if(!fast) return null
        fast = fast.next
        k--
    }
    while(fast){
    
    
        fast = fast.next
        slow = slow.next
    }
    return slow
}

猜你喜欢

转载自blog.csdn.net/weixin_44523860/article/details/115094799