合并两个排序的链表

78 阅读1分钟

合并两个排序的链表

题目描述:

输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。

示例:

输入: 1->2->4, 1->3->4
输出: 1->1->2->3->4->4

思路:

新建一个链表,同时遍历两个链表,依次比较两个链表的元素,哪个小就插入哪个元素,然后该链表指针后移,另一链表指针不变,依次进行,需要注意如果一个链表已经走到了最后一个这个边界条件。

代码:

/**
 * Definition for singly-linked list.
 * function ListNode(val) {
 *     this.val = val;
 *     this.next = null;
 * }
 */
/**
 * @param {ListNode} l1
 * @param {ListNode} l2
 * @return {ListNode}
 */
var mergeTwoLists = function(l1, l2) {
    let res=new ListNode(null)
    let curr=res;
    while(l1||l2){
        if(l1&&l2){
            if(l1.val<=l2.val){
                curr.next=new ListNode(l1.val)
                l1=l1.next;
            }else{
                curr.next=new ListNode(l2.val)
                l2=l2.next;
            }
           
        }else if(l1&&!l2){
            curr.next=new ListNode(l1.val);
            l1=l1.next;
        }else if(!l1&&l2){
             curr.next=new ListNode(l2.val);
            l2=l2.next;
        }
         curr=curr.next;
    }
    return res.next;
};

周五是有魔法的吧 根本没法不开心呢 嘿嘿嘿😁

题目链接:

leetcode.cn/problems/he…