function ListNode(x){
    this.val = x;
    this.next = null;
}

// 可以先把一个链表里的节点存到数组里,再循环比较另一个链表里的值并插入————好难实现
// 考虑呢用一个另外的函数实现节点插入
// 算了,还是看一下解析吧。
// 递归好简单!

function Merge(pHead1, pHead2)
{
    // write code here
    if (!pHead1) {
        return pHead2
    }
    if (!pHead2) {
        return pHead1
    }
    let cur = new ListNode(0);
    let headNode = new ListNode(0);
    if (pHead1.val <= pHead2.val) {
        headNode = pHead1;
    } else {
        headNode = pHead2;
    }
    while (pHead1 && pHead2) {
        if (pHead1.val <= pHead2.val) {
            cur.next = pHead1;
            pHead1 = pHead1.next;
        } else {
            cur.next = pHead2;
            pHead2 = pHead2.next;
        }
        cur = cur.next;
    }
//     连接剩下的部分
    cur.next = pHead1 ? pHead1 : pHead2;
    return headNode;
}
module.exports = {
    Merge : Merge
};