根据题目要求使用分治算法进行融合:
# Definition for singly-linked list. # class ListNode: # def __init__(self, x): # self.val = x # self.next = None class Solution: #same as #148 Sort List def mergeTwoList(self,l1,l2): if(l1==None): return l2 if(l2==None): return l1 lead = ListNode(0) p = lead while(l1!=None and l2!=None): if(l1.val<l2.val): p.next=l1 l1=l1.next p=p.next else: p.next=l2 l2=l2.next p=p.next if(l1!=None): p.next=l1 if(l2!=None): p.next=l2 return lead.next """ :type lists: List[ListNode] :rtype: ListNode """ def mergeKLists(self, lists): if(lists == []): return [] s=len(lists) while(s>1): half = (s+1)//2 for i in range(0,s//2): lists[i]=Solution.mergeTwoList(self,lists[i],lists[i+half]) s=half return lists[0]