Объединение отсортированных списков K – достигнута максимальная глубина рекурсииPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Объединение отсортированных списков K – достигнута максимальная глубина рекурсии

Сообщение Anonymous »

Я работал над задачей Leetcode № 23: объединить K отсортированных списков:

Вам дан массив из k связанных списки списков, каждый связанный список сортируется в порядке возрастания.
Объединить все связанные списки в один отсортированный связанный список и вернуть его. Optional[ListNode]:
if len(lists) == 1:
return lists[0]
elif len(lists) == 2:
return self.merge2Lists(lists[0], lists[1])

v1 = self.mergeKLists(lists[:len(lists)//2])
v2 = self.mergeKLists(lists[len(lists)//2:])

return self.merge2Lists(v1, v2)

def merge2Lists(self, list1, list2):
result = ListNode()
cur = result

while list1 and list2:
if list1.val < list2.val:
cur.next = ListNode(list1.val)
list1 = list1.next
else:
cur.next = ListNode(list2.val)
list2 = list2.next
cur = cur.next

while list1:
cur.next = ListNode(list1.val)
list1 = list1.next
cur = cur.next

while list2:
cur.next = ListNode(list2.val)
list2 = list2.next
cur = cur.next

return result.next
[/code]
Следующие три тестовых примера запускаются при нажатии кнопки Выполнить в интерфейсе LeetCode. Они закодированы в формате JSON:
Я получаю следующее сообщение об ошибке:

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

Runtime Error
RecursionError: maximum recursion depth exceeded
[Previous line repeated 997 more times]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
v1 = self.mergeKLists(lists[:len(lists)//2])
Line 6 in mergeKLists (Solution.py)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Я знаю, что существуют итеративные решения для подхода «разделяй и властвуй», но я хотел попробовать заставить работать этот рекурсивный подход.
Где ошибка?

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

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

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

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

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

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

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