package com.interview.algorithms.list;
import com.interview.basics.model.collection.list.LinkedList;
import com.interview.basics.model.collection.list.Node;
/**
* Created_By: stefanie
* Date: 14-7-19
* Time: 上午12:30
*/
public class C3_14_ListCycleFinder {
public static Node hasCycle(LinkedList list){
Node p1 = list.getHead();
Node p2 = list.getHead();
boolean isFirst = true;
while(isFirst || (p1 != p2 && p2 != null && p2.next != null)){
p1 = p1.next;
p2 = p2.next.next;
if(isFirst) isFirst = false;
}
if(!isFirst && p1 == p2) return p1;
else return null;
}
}