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 32 33 34 35 36 37 38 39 40 41 42 43 44
   | package com.demo.s142;
 
 
 
 
 
 
 
 
 
 
 
 
  class ListNode {     int val;     ListNode next;     ListNode(int x) {         val = x;         next = null;     } } public class Solution {     public ListNode detectCycle(ListNode head) {                  ListNode fast = head, slow = head;         while (true) {                          if (fast == null || fast.next == null) return null;             fast = fast.next.next;             slow = slow.next;                          if (fast == slow) break;         }         fast = head;                  while (slow != fast) {             slow = slow.next;             fast = fast.next;         }         return fast;     }
  }
   |