剑指Offer JZ16 合并两个排序的链表(JavaScript)

时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 64M,其他语言128M 热度指数:888383
本题知识点: 链表

题目描述
输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
示例1
输入
{1,3,5},{2,4,6}
返回值
{1,2,3,4,5,6}

思路:比较大小,然后连接下去即可,注意链表的值有相等的。
循环条件,两条链表都存在,此时需要进行比较。
有一方链表不存在了,就可以直接把另一条链表剩余的接上去,然后返回即可

function Merge(pHead1, pHead2)
{
    
    
    // write code here
    if(pHead1&&!pHead2) return pHead1
    if(!pHead1&&pHead2) return pHead2
    let head = new ListNode(0)
    let res = head
    while(pHead1&&pHead2){
    
    
        if(pHead1.val<pHead2.val){
    
    
            head.next = pHead1        
            pHead1 = pHead1.next
        }else{
    
    
            head.next = pHead2
            pHead2 = pHead2.next
        }
        head = head.next
    }
    if (!pHead1){
    
    
       head.next = pHead2
    }else if (!pHead2){
    
    
       head.next = pHead1
    }
    return res.next
}

猜你喜欢

转载自blog.csdn.net/weixin_44523860/article/details/115099051