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

链表中环的入口结点

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

import java.util.*;
/*
 public class ListNode {
    int val;
    ListNode next = null;

    ListNode(int val) {
        this.val = val;
    }
}
*/
public class Solution {

    public ListNode EntryNodeOfLoop(ListNode pHead) {
        Map<ListNode, Integer> map = new HashMap<>();
        boolean ish = ishas(pHead);
        if (ish) {
            while (pHead != null) {
                if (map.get(pHead) != null) {
                    return pHead;
                }
                map.put(pHead, 1);
                pHead = pHead.next;
            }
        }
        return null;
    }

    public static boolean ishas(ListNode pHead) {
        ListNode slow = pHead;
        ListNode quick = pHead;
        while (quick != null) {
            slow = slow.next;
            if (quick.next == null) {
                return false;
            }
            quick = quick.next.next;
            if (quick == slow) {
                return true;
            }
        }


        return false;
    }
}

利用hashmap;

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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