题解 | #链表中倒数最后k个结点#

链表中倒数最后k个结点

http://www.nowcoder.com/practice/886370fe658f41b498d40fb34ae76ff9

遍历两遍。

第一遍计算链表长度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
};
全部评论

相关推荐

昨天 14:14
门头沟学院 Java
7.10投递7.15感谢信
投递地平线等公司7个岗位
点赞 评论 收藏
分享
S_Holmes:一想到我苦苦追求的迪子私下里却是985的马子,我的心就在滴血😭😭😭
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务