题目描述
给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。
链接: link.
解题思路
我们要找到链表的环的入口,我们知道我们环的入口元素会被重复遍历,而且是重复遍历的第一元素,我们只要用Set装入遍历元素,当第一个出现重复的元素就是链表环的入口。
代码块
/*
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}
*/
import java.util.LinkedHashSet;
import java.util.Set;
public class Solution {
public ListNode EntryNodeOfLoop(ListNode pHead)
{
Set<ListNode> set=new LinkedHashSet<ListNode>();
ListNode p=pHead;
while(p!=null) {
if(set.add(p)) {
p=p.next;
}
else {
return p;
}
}
return null;
}
}