1 public ListNode detectCycle(ListNode head) { 2 ListNode s=head; 3 ListNode f=head; 4 while(f!=null&&f.next!=null){ 5 s=s.next; 6 f=f.next.next; 7 if(s==f){ 8 break; 9 } 10 } 11 if(f==null||f.next==null) 12 return null; 13 s=head; 14 while(s!=f){ 15 s=s.next; 16 f=f.next; 17 } 18 return s; 19 }