package com.anuragkapur.pie.linkedlists;
/**
* @author anuragkapur
*/
public class NullOrCycle {
public static boolean containsCycle(LinkedListElement<Integer> head) {
LinkedListElement<Integer> trailingPointer = head;
LinkedListElement<Integer> leadingPointer = head;
while (trailingPointer != null && leadingPointer != null) {
trailingPointer = trailingPointer.getNext();
leadingPointer = leadingPointer.getNext();
if (leadingPointer != null) {
leadingPointer = leadingPointer.getNext();
} else {
return false;
}
if (trailingPointer == leadingPointer) {
return true;
}
}
return false;
}
}