Зачем увеличивать указатель на два, пока поиск цикла в связанном списке, почему бы не 3,4, 5?

Я уже смотрел вопрос , в котором говорится об алгоритме поиска цикла в связанном список. Я прочитал решение алгоритма поиска цикла Флойда , упомянутое во многих местах, где нам нужно взять два указателя. Один указатель (более медленный / черепаха) увеличивается на один, а другой указатель (более быстрый / заяц) увеличивается на 2. Когда они равны, мы находим цикл, и если более быстрый указатель достигает нуля, в связанном списке нет цикла.

Теперь мой вопрос: почему мы увеличиваем более быстрый указатель на 2. Почему не что-то еще? Увеличение на 2 необходимо, или мы можем увеличить его на X, чтобы получить результат. Необходимо ли, чтобы мы находили цикл, если увеличиваем более быстрый указатель на 2, или может быть случай, когда нам нужно увеличить на 3, 5 или x.

51
задан Community 23 May 2017 в 01:53
поделиться