Вам дан массив из 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:
Код: Выделить всё
[[1,4,5],[1,3,4],[2,6]]
Код: Выделить всё
[]
Код: Выделить всё
[[]]
Код: Выделить всё
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