Floyds Zyklenerkennung findet eine Schleife in einer Sequenz (wie eine linked list) mithilfe von zwei Zeigern, die sich mit unterschiedlichen Geschwindigkeiten bewegen. Falls ein Zyklus existiert, holt der schnelle Zeiger den langsamen Zeiger schließlich ein und trifft ihn. Es verwendet O(1) zusätzlichen Speicher.
Die Idee
Bewege einen slow Zeiger um einen Schritt und einen fast Zeiger um zwei Schritte. In einem Zyklus verringert sich die Lücke um eins mit jedem Schritt, daher müssen sie kollidieren; ohne Zyklus erreicht der schnelle Zeiger das Ende.
