标签:leetcode
https://oj.leetcode.com/problems/merge-k-sorted-lists/
http://fisherlei.blogspot.com/2012/12/leetcode-merge-k-sorted-lists.html
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { * val = x; * next = null; * } * } */ public class Solution { public ListNode mergeKLists(List<ListNode> lists) { if (lists == null || lists.isEmpty()) return null; // 如果不使用heap,需要定义一个函数找出最小node // // Define a min heap PriorityQueue<ListNode> heap = new PriorityQueue<ListNode>(lists.size(), new Comparator<ListNode>() { public int compare(ListNode a, ListNode b) { return Integer.compare(a.val, b.val); } }); // Build the min heap for (ListNode node : lists) { if (node != null) { heap.offer(node); } } ListNode head = null; ListNode tail = null; while (!heap.isEmpty()) { ListNode node = heap.poll(); if (head == null) head = node; if (tail != null) tail.next = node; tail = node; ListNode nextnode = node.next; if (nextnode != null) heap.offer(nextnode); } return head; } }
[LeetCode]23 Merge k Sorted Lists
标签:leetcode
原文地址:http://7371901.blog.51cto.com/7361901/1598422