быстрый и медленный указатели
EN: fast and slow pointers
Техника двух указателей (алгоритм обнаружения цикла Флойда / «черепаха и заяц»): медленный указатель делает шаг за итерацию, быстрый — два. Если они сходятся, цикл существует; сброс одного на голову и одновременное продвижение по одному шагу находит вход в цикл. Работает за O(n) времени и O(1) памяти.