Найти середину списка неизвестного размера

В недавнем интервью меня спросили:

Найдите средний элемент отсортированного списка неизвестной длины, начиная с первой позиции.

Я ответил так:

Имеем 2 счетчика позиций:

счетчик1 counter2

Увеличиваем счетчик1 на 1 и счетчик2 на 2. Когда счетчик2 достигнет конца списка, счетчик1 будет в середине. Я чувствую, что это неэффективно, потому что я пересматриваю узлы, которые я уже видел. В любом случае, есть ли более эффективный алгоритм?

11
задан segFault 21 October 2011 в 00:06
поделиться