题解 | #链表中环的入口结点#

链表中环的入口结点

http://www.nowcoder.com/practice/253d2c59ec3e4bc68da16833f79a38e4

    this.val = x;
    this.next = null;
}*/
function EntryNodeOfLoop(pHead)
{
    // write code here
    //初始化:快指针fast指向头结点,慢指针slow指向头结点;
    //让fast一次走两步,slow一次走一步,第一次相遇处,停止;
    //然后让fast指向头结点,slow原地不动,让fast,slow每次走一步,当再次相遇,就是入口结点
    let fast = pHead,slow = pHead
    while(fast && fast.next){
        fast = fast.next.next
        slow = slow.next
        if(fast === slow){
            let fast1 = pHead
            while(fast1 !== slow){
                fast1 = fast1.next
                slow = slow.next
            }
            return fast1
        }
    }
    return null
}
module.exports = {
    EntryNodeOfLoop : EntryNodeOfLoop
};

alt

全部评论

相关推荐

千千倩倩:简历问题有点多,加v细聊
点赞 评论 收藏
分享
09-25 00:00
已编辑
电子科技大学 Java
球球与墩墩:这不是前端常考的对象扁平化吗,面试官像是前端出来的 const flattern = (obj) => { const res = {}; const dfs = (curr, path) => { if(typeof curr === 'object' && curr !== null) { const isArray = Array.isArray(curr); for(let key in curr) { const newPath = path ? isArray ? `${path}[${key}]` : `${path}.${key}` : key; dfs(curr[key], newPath); } } else { res[path] = curr } } dfs(obj); return res; }
查看3道真题和解析
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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