题目描述
合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。
示例:
输入:
[
1->4->5,1->3->4,
2->6
]输出: 1->1->2->3->4->4->5->6
思路
最简单的就是用暴力解法,先把k个链表的所有元素取出来放进集合,然后对集合进行排序,排序后再从集合中取出来元素构造链表。
暴力解法
1 | public static ListNode mergeKLists(ListNode[] lists) { |
优先队列
使用优先队列排序,直接获取头节点最小的链表的头节点。
1 | public static ListNode mergeKLists(ListNode[] lists) { |