Дана вершина head односвязного списка. Определите, содержит ли этот список цикл.
В связном списке существует цикл, если при последовательном переходе по указателю next можно снова попасть в уже посещённый узел.
Во внутренних тестовых данных используется переменная pos, которая обозначает индекс узла, с которым соединён указатель next последнего элемента списка (хвоста). Обратите внимание, что pos не передаётся в качестве параметра функции.
Верните true, если в связном списке есть цикл, и false в противном случае.
Пример 1:

Вход: head = [3,2,0,-4], pos = 1 Выход: true
Объяснение: В списке есть цикл, где хвост соединён со вторым узлом (индекс 1).
Пример 2:

Вход: head = [1,2], pos = 0 Выход: true
Объяснение: В списке есть цикл, где хвост соединён с первым узлом (индекс 0).
Пример 3:

Вход: head = [1], pos = -1 Выход: false
Объяснение: В списке нет цикла.
Ограничения:
[0, 104].-105 <= Node.val <= 105pos равно -1 или является валидным индексом в связном списке.