题目描述
给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。
时间限制:1秒 空间限制:32768K 热度指数:187653
解答
直接用HashMap来做即可:使用HashMap存储链表结点,当链表结点重复时,即有环时,输出当前结点即可。
/*
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}
*/
import java.util.HashMap;
//直接用HashMap来做即可
public class Solution {
public ListNode EntryNodeOfLoop(ListNode pHead)
{
HashMap<ListNode,Integer> map = new HashMap<>();
ListNode res = null;
while(pHead != null){
if(map.containsKey(pHead)){//如果包含,则说明其是起点
res = pHead;
break;
}else{
map.put(pHead,1);
pHead = pHead.next;
}
}
return res;
}
}