题解 | #链表中环的入口结点#
链表中环的入口结点
http://www.nowcoder.com/practice/253d2c59ec3e4bc68da16833f79a38e4
老套路了,用hashmap做遍历的判定,对于这类问题真的好用,屡试不爽
思路:这里用hashmap存放对应节点和出现次数,一旦第一次出现次数为2,直接返回当前节点
/*
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}
*/
import java.util.*;
public class Solution {
//开一个map记载节点和出现次数
HashMap res=new HashMap();
public ListNode EntryNodeOfLoop(ListNode pHead) {
if(pHead==null){
return null;
}
else{
//如果当前节点第一次出现,则加入map,次数更新为1
if(res.get(pHead)==null){
res.put(pHead,1);
return EntryNodeOfLoop(pHead.next);
}
//如果当前节点不是第一次出现,直接返回当前节点
else{
res.put(pHead,res.get(pHead)+1);
return pHead;
}
}
}
}
