반응형
21. Merge Two Sorted Lists
You are given the heads of two sorted linked lists list1 and list2.
Merge the two lists in a one sorted list. The list should be made by splicing together the nodes of the first two lists.
Return the head of the merged linked list.
Example 1:
Input: list1 = [1,2,4], list2 = [1,3,4]
Output: [1,1,2,3,4,4]
Example 2:
Input: list1 = [], list2 = []
Output: []
Example 3:
Input: list1 = [], list2 = [0]
Output: [0]
계획
문제 해결 전략
2개의 오름차순으로 정리된 linkedList를 LinkedList를 유지하며 오름차순으로 반환하는 함수를 만드는게 목표입니다.
구현 전략
linkedList 1과 2의 노드 값을 비교하며 둘중 큰 값이 어떤것인지 if문으로 구별합니다.
2 LinkedList를 비교하여 작은수를 result라는 linkedList의 tail에 next값으로 넣어주고,
추가된 Listnode를 가진 LinkedList는 포인터를 움직여 다음 값으로 이동합니다.
해설
var mergeTwoLists = function(l1, l2) {
let list = new ListNode()
let head = list
while (l1 !== null && l2 !== null) {
if (l1.val < l2.val) {
list.next = new ListNode(l1.val)
l1 = l1.next
} else {
list.next = new ListNode(l2.val)
l2 = l2.next
}
list = list.next
}
if (l1 !== null)
list.next = l1
if (l2 !== null)
list.next = l2
return head.next
};
반응형