Merge k Sorted Lists
2018-01-12 08:05
106 查看
Merge k sorted linked lists and return it as one sorted list.
Analyze and describe its complexity.
Have you met this question in a real interview?
Yes
Example
Given lists:
return
K路归并算法,使用heap的方式处理
Analyze and describe its complexity.
Have you met this question in a real interview?
Yes
Example
Given lists:
[ 2->4->null, null, -1->null ],
return
-1->2->4->null.
K路归并算法,使用heap的方式处理
/** * Definition for ListNode. * public class ListNode { * int val; * ListNode next; * ListNode(int val) { * this.val = val; * this.next = null; * } * } */ public class Solution { /** * @param lists: a list of ListNode * @return: The head of one sorted list. */ public ListNode mergeKLists(List<ListNode> lists) { // write your code here if (lists == null || lists.size() == 0) { return null; } ListNode dummy = new ListNode(0); ListNode head = dummy; Comparator<ListNode> cmp = new Comparator<ListNode>() { public int compare(ListNode a, ListNode b) { return a.val - b.val; } }; PriorityQueue<ListNode> heap = new PriorityQueue<>(10, cmp); for (int i = 0; i < lists.size(); i++) { ListNode node = lists.get(i); while (node != null) { heap.offer(node); node = node.next; } } while (!heap.isEmpty()) { head.next = heap.poll(); head = head.next; } return dummy.next; } }
相关文章推荐
- LeetCode:21_Merge Two Sorted Lists | 合并两个排序列表 | Easy
- Leetcode Merge Two Sorted Lists
- LeetCode Merge k Sorted Lists 解题报告
- Merge k Sorted Lists
- Leetcode-Merge Two Sorted Lists
- leetcode:Merge Two Sorted Lists(有序链表的归并)
- Merge Two Sorted Lists 默认初始是按顺序排列的
- [LeetCode]题解(python):021-Merge Two Sorted Lists
- 16.Merge Two Sorted Lists
- LeetCode Online Judge 题目C# 练习 - Merge k Sorted Lists
- leetcode23:Merge k Sorted Lists
- [leetcode]21. Merge Two Sorted Lists(java)
- Merge Two Sorted Lists
- Merge k Sorted Lists-Leetcode
- merge-two-sorted-lists
- 023 - Merge k Sorted Lists
- leetcode-21-Merge Two Sorted Lists
- Merge Two Sorted Lists
- Merge K Sorted Lists
- Merge k Sorted Lists