算法分析与设计(三)——合成K个排序链表

2019-05-27  本文已影响0人  itczt

一、问题描述

合并 ķ 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。

示例:

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

2.算法设计:

方法1:暴力

想法 & 算法

关于排序,你可以参考 这里 获得更多关于排序算法的内容。

class Solution(object):
    def mergeKLists(self, lists):
        """
        :type lists: List[ListNode]
        :rtype: ListNode
        """
        self.nodes = []
        head = point = ListNode(0)
        for l in lists:
            while l:
                self.nodes.append(l.val)
                l = l.next
        for x in sorted(self.nodes):
            point.next = ListNode(x)
            point = point.next
        return head.next

复杂度分析

上一篇下一篇

猜你喜欢

热点阅读