Problem: Find where a linked list cycle begins.
Approach: 1. Fast/slow pointers find meeting point in cycle.
2. Reset one to head, move both at same speed.
3. They meet at cycle start.
Math: Fast travels a+b+c, slow travels a+b. Since 2(a+b)=a+b+c, we get a=c−b. From meeting point, c−b steps reaches cycle start, same as a steps from head.
Time: O(n). Space: O(1).