1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
   | import utils.ListNode;
  public class LinkedListCycle {     
 
 
      public ListNode detectCycle(ListNode head) {         if (head == null)             return null;         ListNode slow = head;         ListNode fast = head;         while(true) {             if (fast != null && fast.next!= null ){                 fast = fast.next.next;                 slow = slow.next;             }             else {                 return null;             }             if (fast == slow){                 while(head != slow){                     head = head.next;                     slow = slow.next;                 }                 return slow;             }         }
      } }
   |