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,
- Leetcode Merge k Sorted Lists problem solution in C++
- Leetcode Merge k Sorted Lists problem solution in Java
- Leetcode Merge k Sorted Lists problem solution in C
- Leetcode Merge k Sorted Lists problem solution in C#