Floyd's algorithm: two pointers at different speeds find a cycle, where it starts and how long it is.
This interactive visualization needs JavaScript.