BRULIK
Ghost
Весь прикол в том что они должны двигаться с разными скоростями. Чего вы в вашем решении не указали
Код:
Node* p1 = tail, *p2 = tail;
bool bLoop = false;
while ( p1 != NULL && p2 != NULL )
{
p1 = p1->next;
p2 = (p2->next != NULL) ? p2->next->next : NULL;
if ( (bLoop = (p1==p2)) )
break;
}
Вот шаги для того-же списка:
1. p1 = b, p2 = c
2. p1 = c, p2 = e
3. p1 = d, p2 = c
4. p1 = e, p2 = e --> FINISH