LeetCode算法題python解法:23. Merge k Sorted Lists
阿新 • • 發佈:2018-10-09
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