Список brainteasers Домой

Территория Web 1.0 / Brainteasers

Цикл в списке

Ответ (квадратичная сложность)
Изначально первая ячейка (обозначим ее через A) указывает на первый элемент списка. Счетчик сдвигов ячейка A равен 0.
На каждом шаге:
* Сдвигаем A так, чтобы она указывала на следующий элемент, прибавляя 1 к счетчику ее сдвигов
* Устанавливаем вторую (B) ячейку так, чтобы она указывала на первый элемент
* Двигаем B вперед, пока она не начнет указывать на элемент, на который указывает ячейка A. Если при этом нам потребуется меньше сдвигов, чем потребовалось A (см. счетчик), значит в списке есть цикл.

Условие
Подсказка [1]
Подсказка [2]
Ответ [2]


16.03.2010