LinkedList Видалення циклу
Середня
Обмеження на час виконання 1 секунда
Обмеження на використання пам'яті 128 мегабайтів
Задано зв'язний список. Потрібно видалити цикл, якщо він існує. Якщо циклу немає, список залишається без змін.
Ось визначення зв'язного списку:
// Java class ListNode { int val; ListNode next; ListNode(int x) { val = x; next = null; } }
// C++ class ListNode { public: int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {} };
// C struct ListNode { int val; struct ListNode *next; };
Реалізуйте функцію removeCycle, яка встановлює вказівник next хвоста на null і повертає вказівник на голову списку.
// Java ListNode removeCycle(ListNode head)
// C, C++ ListNode* removeCycle(ListNode *head)
Приклад
Функція removeCycle видаляє вказівник хвоста (встановлює вказівник next хвоста на null) і повертає head:
Відправки 1K
Коефіцієнт прийняття 34%