В вопросе интервью: «Реализуйте алгоритм, который обнаруживает наличие цикла». Например, связанный список имеет цикл, например:
0--->1---->2---->3---->4---->5---->6
▲ |
| ▼
11<—-22<—-12<—-9<—-8
Используя обнаружение цикла Флойда, эту проблему можно решить с помощью быстрого и медленного указателя. Так что я должен попытаться сравнить
а. Значения узла ссылки, т.е.
if (fast.data == slow.data)
break;
где быстрое и медленное относятся к типу Link
class Link
{
int IData {get; set;}
Link Next {get; set;}
}
OR
б. Они указывают на одну и ту же ссылку, например if (fast == slow)
Спасибо.
if (fast == slow)
это правильная проверка. - person Azodious   schedule 02.12.2011