Input: list1 = [1,2,4], list2 = [1,3,4]
Output: [1,1,2,3,4,4]
Input: list1 = [], list2 = []
Output: []
Input: list1 = [], list2 = [0]
Output: [0]
처음에는 배열을 합치고 정렬만 하면되는 것인지 알고 concat 과 sort 를 써서 return 하였다. 하지만 문제내용 Linked List 문제였다.
Linked List 는 일반 배열과 다르게 각 요소끼리 연결을 이용하여 List화 시킨것이다. 즉 array 함수들 사용 못한다.
결국은 다른 사람 답안을 참고하였다. head를 시작으로 cur에 담고 cur.next 에 다음으로 들어갈 요소를 저장 cur1, cur2를 변경하면서 요소가 null일때까지 반복하는것이다.
var mergeTwoLists = function (l1, l2) {
const head = new ListNode();
let cur = head;
let cur1 = l1;
let cur2 = l2;
while (cur1 !== null && cur2 !== null) {
if (cur1.val < cur2.val) {
cur.next = cur1;
cur1 = cur1.next;
} else {
cur.next = cur2;
cur2 = cur2.next;
}
cur = cur.next;
}
if (cur1 !== null) {
cur.next = cur1;
}
if (cur2 !== null) {
cur.next = cur2;
}
return head.next;
};