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

链表中环的入口结点

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

/*class ListNode {
 *     val: number
 *     next: ListNode | null
 *     constructor(val?: number, next?: ListNode | null) {
 *         this.val = (val===undefined ? 0 : val)
 *         this.next = (next===undefined ? null : next)
 *     }
 * }
 */
/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param pHead ListNode类 
 * @return ListNode类
 */
export function EntryNodeOfLoop(pHead: ListNode): ListNode {
    // write code here
    // method1
//     const nodeSet = new Set();
//     let p = pHead;
//     while(p) {
//         if(nodeSet.has(p)) {
//             return p;
//         } else {
//             nodeSet.add(p);
//             p = p.next;
//         }
//     }
//     return null;
    let fast = pHead, slow = pHead;
    while(fast && fast.next) {
        fast = fast.next.next;
        slow = slow.next;
        if(fast === slow) {
            break;
        }
    }
    if(!fast || !fast.next) {
        return null;
    }
    fast = pHead;
    while(fast !== slow) {
        fast = fast.next;
        slow = slow.next;
    }
    return fast;
}
全部评论

相关推荐

03-12 11:54
门头沟学院 Java
dghyuiok:佬太厉害了,我也27双非,只会黑马商城和苍穹外卖,靠这两个烂大街项目,装成大三面了4个一个没中
点赞 评论 收藏
分享
AAA专业长城贴瓷砖刘大爷:这样的简历我会直接丢进垃圾桶,花里胡哨的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务