(Java) 리트코드 - Merge k Sorted Lists
[문제 링크]
Java 풀이
import java.util.Comparator;
import java.util.PriorityQueue;
class Solution {
public ListNode mergeKLists(ListNode[] lists) {
ListNode result = new ListNode();
ListNode temp = result;
PriorityQueue<ListNode> q = new PriorityQueue<>(new Comparator<ListNode>() {
@Override
public int compare(ListNode o1, ListNode o2) {
return Integer.compare(o1.val, o2.val);
}
});
for (ListNode list : lists) {
while (list != null) {
q.add(list);
list = list.next;
}
}
while (!q.isEmpty()) {
ListNode node = q.poll();
temp.next = node;
temp = temp.next;
}
temp.next = null;
return result.next;
}
}