Leetcode Merge k Sorted Lists problem solution in Python programming

In the Leetcode Merge k Sorted Lists problem solution in Python programming Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses.

You are given an array of k linked-lists lists, each linked-list is sorted in ascending order.

Merge all the linked-lists into one sorted linked-list and return it.

Example 1:

Input: lists = [[1,4,5],[1,3,4],[2,6]]
Output: [1,1,2,3,4,4,5,6]
Explanation: The linked lists are:
[
1->4->5,
1->3->4,
2->6
]
merging them into one sorted list:
1->1->2->3->4->4->5->6

Constraints:

  • k == lists.length
  • 0 <= k <= 104
  • 0 <= lists[i].length <= 500
  • -104 <= lists[i][j] <= 104
  • lists[i] is sorted in ascending order.
  • The sum of lists[i].length will not exceed 104.

Leetcode Merge k Sorted Lists problem solution in Python programming

class Solution(object):
    def mergeKLists(self, lists):
        def merge2(l1, l2):
            dummy = tail = ListNode()
            
            while l1 and l2:
                if l1.val <= l2.val:
                    tail.next = l1
                    l1 = l1.next
                else:
                    tail.next = l2
                    l2 = l2.next
                    
                tail = tail.next    
                
            tail.next = l1 or l2
            return dummy.next
                        
        def merge_k_rec(l, h):
            if h - l <= 2:
                return merge2(lists[l], lists[h - 1] if h - 1 > l else None)
            
            mid = (l + h) // 2
            return merge2(merge_k_rec(l, mid), merge_k_rec(mid, h))
        
        if not lists: return None
        
        return merge_k_rec(0, len(lists))

Also read,

By Neha Singhal

Hi, my name is Neha singhal a software engineer and coder by profession. I like to solve coding problems that give me the power to write posts for this site.

Leave a Reply

Your email address will not be published. Required fields are marked *