Доказательство обнаружения начала цикла в связанном списке [дубликаты]

На этот вопрос уже есть ответ:

Объясните, как работает поиск начального узла цикла в связанном списке циклов? 20 ответов

Из нескольких постов внутри stackoverflow и снаружи я узнал, как определять циклы в связанном списке, длину цикла. Я также нашел метод определения начала цикла.

Вот снова шаги для справки.

Обнаружение петли:

Имеют два указателя, классически называемых зайцем и черепахой. Переместите зайца на 2 шага, а черепаху на 1. Если они встретятся в какой-то момент, то, несомненно, существует цикл, и точка встречи, очевидно, находится внутри цикла.

Поиск длины цикла:

Сохраняйте один указатель фиксированным в месте встречи, в то время как другой приращивайте, пока они снова не станут прежними. Увеличивайте счетчик по мере продвижения, и значение счетчика при встрече будет равняться длине цикл

Найди начало цикла

Возьмите один указатель в начало списка, а другой оставьте в месте встречи. Теперь приращение как на единицу, так и точка встречи - начало цикла. Я проверил метод, используя некоторые случаи на бумаге, но я не понимаю, почему он должен работать.

Кто-нибудь может предоставить математическое доказательство того, почему этот метод работает?

Ответы на вопрос(6)

Ваш ответ на вопрос