(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;
    }
}

© 2021. By Backtony