Linked List Cycle II
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 public class Solution { 2 public ListNode detectCycle(ListNode head) { 3 if(head==null) return head; 4 ListNode fast = head; 5 ListNode slow = head; 6 while(fast!=null){ 7 slow = slow.next; 8 fast = fast.next; 9 if(fast!=null) 10 fast = fast.next; 11 if(fast==slow) break; 12 } 13 if(fast==null) return null; 14 slow = head; 15 while(slow!=fast){ 16 slow =slow.next; 17 fast = fast.next; 18 } 19 return slow; 20 } 21 }
Given a linked list, return the node where the cycle begins. If there is no cycle, return null
.