Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity.
Example:
Input:
[ 1->4->5, 1->3->4, 2->6] Output: 1->1->2->3->4->4->5->6# Definition for singly-linked list.class ListNode: def __init__(self, x): self.val = x self.next = Noneclass Solution: def mergeKLists(self, lists): """ :type lists: List[ListNode] :rtype: ListNode """ if len(lists)==0: return None if len(lists)==1: return lists[0] head = self.mergeTwoLists(lists[0],lists[1]) for i in range(2,len(lists)): head = self.mergeTwoLists(head,lists[i]) return head def mergeTwoLists(self, l1, l2): """ :type l1: ListNode :type l2: ListNode :rtype: ListNode """ if l1 is None and l2 is None: return l1 if l1 is None: return l2 if l2 is None: return l1 start = ListNode(0) pos = start while l1 and l2: if l1.val