Нужна помощь в поиске Deadloop в этом связанном списке кода Python! (LeetCode 328)Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Нужна помощь в поиске Deadloop в этом связанном списке кода Python! (LeetCode 328)

Сообщение Anonymous »

Я пытаюсь решить Leetcode Q328:
Учитывая заголовок односвязного списка, сгруппируйте все узлы с нечетными индексами вместе, за которыми следуют узлы с четными индексами, и верните переупорядоченный список.
Вот мой код:

Код: Выделить всё

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:
def oddEvenList(self, head: Optional[ListNode]) -> Optional[ListNode]:
node = head
odd = True
lastOdd = None
while node:
temp = node.next
if node.next:
if node.next.next:
node.next = node.next.next
else:
if odd:
lastOdd = node
else:
if odd:
lastOdd = node
break
node = temp
odd = not(odd)
lastOdd.next = head.next
return head
При тестировании с [1,2,3,4,5] у меня либо не хватило времени, либо памяти, поэтому я предполагаю, что где-то есть тупиковая ситуация. Но я пару раз прочесал логику и не смог ее найти!
Я относительно уверен, что тупиковая ситуация возникает со следующей частью, поскольку удаление этой части позволит программа для завершения:

Код: Выделить всё

else:
if odd:
lastOdd = node
На самом деле это уже вторая версия моего кода, изначально было так:

Код: Выделить всё

else:
if odd:
node.next = head.next
< /code>
Но почему это Deadloop? Я уже использовал Temp 
для хранения следующего узла в исходной цепочке уже отдельно, и цикл должен просто остановиться после узела , достигает конца цепи!
Любая помощь ценится! Я только начинаю узнавать о связанных списках, так что это может быть действительно глупым.

Подробнее здесь: https://stackoverflow.com/questions/793 ... etcode-328
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»