Merge k Sorted Lists
来源:互联网 发布:ios wkwebview 传值js 编辑:程序博客网 时间:2024/04/30 11:55
Problem:Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity.
最简单的方法是使用PriorityQueue。PriorityQueue是个基于优先级堆的极大优先级队列。
此队列按照在构造时所指定的顺序对元素排序,既可以根据元素的自然顺序来指定排序,
也可以根据 Comparator 来指定,这取决于使用哪种构造方法。
public ListNode mergeKLists(ListNode[] lists) {if (lists.length == 0)return null;//PriorityQueue is a sorted queuePriorityQueue<ListNode> q = new PriorityQueue<ListNode>(lists.length,new Comparator<ListNode>() {public int compare(ListNode a, ListNode b) {return a.val-b.val;}});//add first node of each list to the queuefor (ListNode list : lists) {if (list != null)q.add(list);}ListNode head = new ListNode(0);ListNode p = head; // serve as a pointer/cursorwhile (q.size() > 0) {ListNode temp = q.poll();//poll() retrieves and removes the head of the queue - q. p.next = temp;//keep adding next element of each listif (temp.next != null)q.add(temp.next);p = p.next;}return head.next;}
0 0
- Merge K Sorted Lists
- Merge k Sorted Lists
- Merge k Sorted Lists
- Merge K Sorted Lists
- Merge k Sorted Lists
- Merge k Sorted Lists
- Merge k Sorted Lists
- Merge k Sorted Lists
- Merge k Sorted Lists
- Merge k Sorted Lists
- Merge k Sorted Lists
- Merge k Sorted Lists
- Merge k Sorted Lists
- Merge k Sorted Lists
- Merge K sorted Lists
- Merge k Sorted Lists
- Merge k Sorted Lists
- Merge k Sorted Lists
- C#基础加强第二天总结--面向对象2及字符串
- pat 1092. To Buy or Not to Buy (20)
- 解决Eclipse中C++代码显示Symbol 'std' could not be resolved的问题
- 数据适配器BaseAdapter
- 线程与进程(上)
- Merge k Sorted Lists
- LeetCode Product of Array Except Self
- 练习1:visual dsp++ 5.1 ts201 工程的建立
- junit测试框架
- hoj 1368 Very Simple Arithmetic java 高精度
- OC之Block的使用
- Mac 下 Homebrew安装
- 1102 采药
- poj 1405 Heritage java 高精度