Задачи
LinkedList Цикл точка входа
LinkedList Цикл точка входа
Задан связный список. Верните указатель на вершину, в которой начинается цикл. Если цикла нет, верните null.
Определение связного списка:
// 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;
};
Реализуйте функцию detectCycle, которая возвращает указатель на вершину, в которой начинается цикл. Если цикла нет, то верните null.
// Java
ListNode detectCycle(ListNode head)
// C, C++
ListNode* detectCycle(ListNode *head)
Пример
Функция detectCycle возвращает null так как связный список не содержит цикла.
Функция detectCycle возвращает указатель на вершину со значением 3 - точку входа в цикл.