题解 | #链表中环的入口结点#
链表中环的入口结点
http://www.nowcoder.com/practice/253d2c59ec3e4bc68da16833f79a38e4
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}
// 遍历列表,在遍历的同时记录遍历过的节点,当遍历过的节点再次被遍历到时,说明有环
*/
import java.util.*;
public class Solution {
public ListNode EntryNodeOfLoop(ListNode pHead) {
// 定义一个集合保存遍历过的节点
HashSet<ListNode> set = new HashSet<>();
// 开始变量链表,结束条件为 遍历完或者出现环
ListNode p = pHead,returnNode = null;
while(p != null){
if(set.contains(p)){
returnNode = p;
break;
}else{
set.add(p);
p = p.next;
}
}
return returnNode;
}
}