https://leetcode.com/problems/merge-k-sorted-lists
n개의 linked-list가 들어있는 배열이 주어질 때 오름차순으로 정렬하여 오름차순으로 이루어진 하나의 linked-list로 만드는 문제.
배열에 들어있는 linked-list의 값을 모두 꺼내 오름차순으로 정렬한 뒤 이 값들을 다시 linked-list에 넣는 방법으로 문제를 풀었다.
import java.util.*;
class Solution {
static List<Integer> list = new ArrayList();
public ListNode mergeKLists(ListNode[] lists) {
list = new ArrayList();
for(ListNode node : lists) {
getValue(node);
}
Collections.sort(list);
ListNode answer = new ListNode(0);
ListNode temp = answer;
for(int i=0; i<list.size(); i++) {
temp.next = new ListNode(list.get(i));
temp = temp.next;
}
return answer.next;
}
public void getValue(ListNode node) {
while(node != null) {
list.add(node.val);
node = node.next;
}
}
}
var array = [];
var mergeKLists = function(lists) {
for(var i=0; i<lists.length; i++) {
getValue(lists[i]);
}
array.sort((a,b) => b-a);
let answer = new ListNode(0);
let temp = answer;
while(array.length > 0) {
temp.next = new ListNode(array.pop());
temp = temp.next;
}
return answer.next;
};
function getValue(node) {
while(node) {
array.push(node.val);
node = node.next;
}
}