Цикл в связанном списке

EasyАлгоритмы
05:00
Лучше работает на десктопе
Linked ListsTwo Pointers

Дан массив nums (элементы связанного списка) и число pos — индекс узла, на который указывает последний элемент (создавая цикл). Если pos = -1, цикла нет.

Определите, есть ли в списке цикл. Постройте связанный список, создайте цикл если нужно, и используйте алгоритм Флойда.

Сигнатура

def has_cycle(nums: list[int], pos: int) -> bool:

Constraints

  • 0 ≤ len(list) ≤ 10⁴
  • -10⁵ ≤ val ≤ 10⁵
  • pos ∈ [-1, len(list) - 1]

Примеры

Пример 1

Вход:
nums = [3,2,0,-4]
pos = 1
Выход:true

Пример 2

Вход:
nums = [1,2]
pos = 0
Выход:true

Пример 3

Вход:
nums = [1]
pos = -1
Выход:false
Консоль
Нажмите Run или Ctrl+Enter для запуска