[Leetcode] 23. Merge k Sorted Lists (javascript)

Ash·2020년 9월 26일
0

문제

https://leetcode.com/problems/merge-k-sorted-lists

문제설명

n개의 linked-list가 들어있는 배열이 주어질 때 오름차순으로 정렬하여 오름차순으로 이루어진 하나의 linked-list로 만드는 문제.

해결방법

배열에 들어있는 linked-list의 값을 모두 꺼내 오름차순으로 정렬한 뒤 이 값들을 다시 linked-list에 넣는 방법으로 문제를 풀었다.

코드

java

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

javascipt

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;
    }
}
profile
기록남기기👩‍💻

0개의 댓글