# 1. 題目描述
給定一個有環鏈表,返回第一個入環節點。
# 2. 題解
快慢指針
~~~
/**
* 快慢指針
* @param list 待判斷有環鏈表
* @return 環入口或者null
*/
public Node findStartNode(Node list){
if(list == null) return null;
Node fast = list, slow = list;
boolean flag = false;
while(fast != null && fast.next != null){
slow = slow.next;
fast = fast.next.next;
if(slow == fast) {
flag = true;
break;
}
}
if(!flag) return null;
fast = list;
while(fast != slow){
fast = fast.next;
slow = slow.next;
}
return fast;
}
~~~