1. 程式人生 > >leetcode 23合併K個排序連結串列-----python

leetcode 23合併K個排序連結串列-----python

合併 k 個排序連結串列,返回合併後的排序連結串列。請分析和描述演算法的複雜度。

示例:

輸入:
[
1->4->5,
1->3->4,
2->6
]
輸出: 1->1->2->3->4->4->5->6

思路,將連結串列資料新增到陣列中,排序後再新增到連結串列輸出

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None

class Solution:
    def mergeKLists(self, lists):
        """
        :type lists: List[ListNode]
        :rtype: ListNode
        """
        res = []
        for i in lists:
            while i:
                res.append(i.val)
                i = i.next
        if res == []:
            return []
        res.sort()
        return res

提交結果:
在這裡插入圖片描述