eolymp
bolt
Попробуйте наш новый интерфейс для отправки задач
Задачи

LinkedList Цикл точка входа

опубликовано 03.04.2024, 02:42:46

ListNode* detectCycle(ListNode *head) { ListNode *p = head; ListNode *q = head;

if (head == NULL) return NULL;

bool flag = false;
while (q->next && q->next->next) {
    q = q->next->next;
   p = p->next;

   if (q == p) {
        flag = true;
        break;
    }
}

if (flag) {
    p = head;

    while (p != q) {
        p = p->next;
        q = q->next;
    }
    return p;
} else {
   return NULL;
}

}