2013-07-25 4 views
0

Я просто читал об алгоритме черепахи и зайца (медленный и быстрый бегун) here, но я не совсем понимаю, почему это считается лучшим решением.Проверка соответствия связанного списка

Не было бы меньше времени, чтобы сделать это:

  • сохранить корневой узел

  • путешествие через связанный список

  • на каждом новом узле, проверьте, если это корневой узел.

+1

Нет ; список, содержащий круг, может иметь головной узел в конце хвоста 6 или 9; голова не может быть на круге, но список по-прежнему круглый. –

ответ

0

Только что реализованный круглый список необязательно должен соединяться с головой. Он может просто иметь петлю где-то посередине. Это делает 2 «бегунов» необходимым.

Но если вы проверяете явно для «змея ест свой собственный хвост» вид связанного списка, то было бы достаточно просто проверить на равенство указателя с корневым узлом, как я предложил, прежде чем

+0

Вы отвечаете на свой вопрос или исправляете его с уточненным вопросом? Если последний, пожалуйста, отредактируйте свой вопрос, чтобы включить уточнение. – SingleNegationElimination

+0

Метод «2 бегунов» имеет то преимущество, что он более общий, но ваши выводы верны. – tehawtness

+0

@TokenMacGuy Я технически ответил на свой вопрос – Oleksiy

Смежные вопросы