【链表】链表中环的入口结点

题目:

给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。

 

解答:

设置一个HashSet来存储访问过的节点的引用。当第一次再访问到HashSet中的元素时,就找到了环的入口。

/*
 public class ListNode {
    int val;
    ListNode next = null;

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

import java.util.HashSet;
import java.util.Set;
public class Solution {
    

    public ListNode EntryNodeOfLoop(ListNode pHead)
    {
        Set<ListNode> set = new HashSet<>();
        
        ListNode p = pHead;
        while(p!=null){
            if(!set.contains(p)) set.add(p);
            else return p;
            p = p.next;
        }
        
        return null;
    }
}

 

posted @ 2020-09-14 21:56  3KBLACK  阅读(52)  评论(0)    收藏  举报