题目
法1:分治合并

Python
class Solution:
def mergeKLists(self, lists: List[Optional[ListNode]]) -> Optional[ListNode]:
if len(lists) == 0:
return None
elif len(lists) == 1:
return lists[0]
n = len(lists)
leftNode = self.mergeKLists(lists[:n//2])
rightNode = self.mergeKLists(lists[n//2:])
return self.merge2Lists(leftNode, rightNode)
def merge2Lists(self, leftNode, rightNode):
dummy = ListNode(-1)
cur = dummy
cur1, cur2 = leftNode, rightNode
while cur1 and cur2:
if cur1.val <= cur2.val:
cur.next = cur1
cur1 = cur1.next
else:
cur.next = cur2
cur2 =