//返回链表第一个进入环的节点
public class Node{
public int value;
public Node next;
public Node(int data){
this.value=data;
}
}
public Node getLoopNode(Node head){
if(head==null||head.next==null||head.next.next==null){
return null;
}
Node node1=head.next;
Node node2=head.next.next;
while(node1!=node2){
if(node1.next==null||node2.next.next==null){
return null;
}
node2=node2.next.next;
node1=node1.next;
}
node2=head;//node2->walk again from head
while(node1!=node2){
node1=node1.next;
node2=node2.next;
}
return node1;
}