Я вижу две проблемы с кодом.
Во-первых, внутри вашего блока if sign:
необходимо установить sign = False
, поскольку вы хотите инициализировать head
только один раз и выполнить этот блок только первыйвремя.(Не уверен, почему переменная называется sign
, возможно, first
было бы более подходящим, или просто повторное использование head = None
для этого условия тоже сработало бы.)
Вторая ошибка меньше и влияетпоследняя ссылка в списке, чтобы сделать ее круглой.Вы хотите установить pre.right = head
вместо pre
, чтобы последний узел списка указывал на первый, а не на саму себя.
Я на самом деле не проверял это, так что возможно я 'Я что-то упустил, но мне кажется, что этого должно быть достаточно, чтобы исправить этот код.