剑指offer[16]——合并两个排序的链表

题目描述

输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。

这道题要求我们合并两个排序好的链表,我们就新建一个链表pHead,对两个链表进行遍历,遍历继续的条件是两个链表都没有到达最尾部。在遍历中判断两个链表val的大小,然后让pHead.next指向val小的那一个链表,改变该链表next指向继续遍历。

/*function ListNode(x){
    this.val = x;
    this.next = null;
}*/
function Merge(pHead1, pHead2)
{
    let pHead = new ListNode(0);
    const res = pHead;
    while(pHead1&&pHead2){
        if(pHead1.val<=pHead2.val){
            pHead.next = pHead1;
            pHead1 = pHead1.next;
        }else{
            pHead.next = pHead2;
            pHead2 = pHead2.next;
        }
        pHead = pHead.next;
    }
    pHead.next = pHead1?pHead1:pHead2;
    return res.next;
}
原文地址:https://www.cnblogs.com/Jacob98/p/12465527.html