题目:给一个长度为n链表,若其中包含环,请找出该链表的环的入口结点,否则,返回null。
示例:
输入:{1,2,3,4,1,5}
输出:节点1
解法:有环就是会指向重复节点,重复的节点就是环的入口,遍历过程中输入与之前重复的节点即可。这里借助HashMap结构
import java.util.*;
public class Solution {
public ListNode EntryNodeOfLoop(ListNode pHead) {
if(pHead == null)
return null;
ListNode p = pHead;
HashMap<Integer,ListNode> nodes = new HashMap<>();
while(p!=null){
if(nodes.containsKey(p.val)){
return nodes.get(p.val);
}
nodes.put(p.val,p);
p = p.next;
}
return null;
}
}