Two phases, and the second one is the part nobody can reconstruct from memory.
Phase 1 is plain Floyd: slow steps one, fast
steps two, and inside a loop they must collide. Phase 2: reset a pointer to
head and advance both one step at a time — they meet at the cycle
entrance. Why: let a = head→entrance, b = entrance→meeting,
c = cycle length. Slow walked a+b, fast walked 2(a+b), and
fast's extra a+b is a whole number of laps, so a + b = k·c →
a = k·c − b. Walking a more steps from the meeting point lands
exactly on the entrance.
a ≡ −b (mod c).