class Solution:
def mergeKLists(self, lists: List[ListNode]) -> ListNode:
n = len(lists)
if n == 0: return None
if n == 1: return lists[0]
mid = n // 2
return self.mergeTwoLists(self.mergeKLists(lists[:mid]), self.mergeKLists(lists[mid:]))
# 迭代写法
def mergeTwoLists(self, node1, node2):
dummy = cur = ListNode()
while node1 and node2:
if node1.val <= node2.val:
cur.next = node1
node1 = node1.next
else:
cur.next = node2
node2 = node2.next
cur = cur.next
cur.next = node1 if node1 else node2
return dummy.next
【LC23】合并K个有序链表
おすすめ
転載: blog.csdn.net/weixin_44441131/article/details/119102755
おすすめ
ランキング