์ฝ๋
import java.util.PriorityQueue;
class lt23 {
public ListNode mergeKLists(ListNode[] lists) {
if (lists == null || lists.length == 0) {
return null;
}
// ์ฐ์ ์์ ํ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฆฌ์คํธ์ ๋
ธ๋๋ฅผ ์ ๋ ฌ
PriorityQueue<ListNode> queue = new PriorityQueue<>((a, b) -> a.val - b.val);
// ๋ชจ๋ ๋ฆฌ์คํธ์ ์ฒซ ๋ฒ์งธ ๋
ธ๋๋ฅผ ํ์ ์ถ๊ฐ
for (ListNode node : lists) {
if (node != null) {
queue.offer(node);
}
}
// ๋๋ฏธ ํค๋ ์์ฑ
ListNode dummyHead = new ListNode(0);
ListNode current = dummyHead;
// ํ์์ ๋
ธ๋๋ฅผ ํ๋์ฉ ๊บผ๋ด์ด ์ฐ๊ฒฐ ๋ฆฌ์คํธ๋ฅผ ์์ฑ
while (!queue.isEmpty()) {
ListNode node = queue.poll();
current.next = node;
current = current.next;
// ๋ค์ ๋
ธ๋๋ฅผ ํ์ ์ถ๊ฐ
if (node.next != null) {
queue.offer(node.next);
}
}
return dummyHead.next;
}
}
Java
๋ณต์ฌ