Write a Program to Merge Two Sorted Lists

# 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: []
 ```
Constraints:
```
The number of nodes in both lists is in the range [0, 50].
-100 <= Node.val <= 100
Both list1 and list2 are sorted in non-decreasing order.
```
/**
 * Definition for singly-linked list.
 * function ListNode(val, next) {
 *     this.val = (val===undefined ? 0 : val)
 *     this.next = (next===undefined ? null : next)
 * }
 */
/**
 * @param list1
 * @param list2
 * @return mergedList
 */
const mergeTwoLists = function(list1, list2) {
    const mergedList = {val: -1, next: null};
    let tmpList = mergedList;

    while(list1 && list2) {
        if(list1.val > list2.val) {
            tmpList.next = list2;
            list2 = list2.next;
        } else {
            tmpList.next = list1;
            list1 = list1.next;
        }
        tmpList = tmpList.next;
    }
    tmpList.next = list1 || list2;
    return mergedList.next;
};