두 숫자로 이뤄진 링크드리스트를 오름차순으로 머지하라.
/**
* Definition for singly-linked list.
* function ListNode(val, next) {
* this.val = (val===undefined ? 0 : val)
* this.next = (next===undefined ? null : next)
* }
*/
/**
* @param {ListNode} list1
* @param {ListNode} list2
* @return {ListNode}
*/
var mergeTwoLists = function (list1, list2) {
const head = new ListNode()
let node = {
l1: list1,
l2: list2,
rear: head,
}
const getValMvNode = (node, keyStr) => {
const { val, next } = node[keyStr]
node[keyStr] = next
return val
}
while (node.l1 || node.l2) {
let curNodeVal = null
if (node.l1 && node.l2) {
curNodeVal = node.l1.val < node.l2.val ? getValMvNode(node, 'l1') : getValMvNode(node, 'l2')
} else if (node.l1) curNodeVal = getValMvNode(node, 'l1')
else if (node.l2) curNodeVal = getValMvNode(node, 'l2')
// console.log(l1, l2)
node.rear.next = new ListNode(curNodeVal)
node.rear = node.rear.next
}
return head.next
}