1. 程式人生 > >LeetCode算法題python解法:23. Merge k Sorted Lists

LeetCode算法題python解法:23. Merge k Sorted Lists

pan 鏈表合並 out esc 鏈表 node leet lis while

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

題目大意就是給定多個已經排序的鏈表合並成一個排序的鏈表,我這裏是將多個鏈表的值遍歷添加到一個鏈表中,然後重新組織鏈表。復雜多比較高
代碼如下:
class Solution:
    
def mergeKLists(self, lists): if lists == []: return None link = [] for i in lists: while i != None: link.append(i.val) if i.next == None: break i = i.next link = sorted(link)
print(link) if len(link) == 0: return None out = [ListNode(link[0])] for i in range(1, len(link)): out.append(ListNode(link[i])) out[i - 1].next = out[i] out.append(ListNode(link[-1])) return out[0]

LeetCode算法題python解法:23. Merge k Sorted Lists