[路飞]_合并链表

134 阅读1分钟

合并两个排序的链表

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

解题思路:

  • 两个已经排好顺序链表想要合并成为一个新的排好顺序的链表
  • 设定链表1list1链表2list2
  • 当L1和L2都不为空链表时,比较list1和list2头节点,将小的那个添加在新的链表L3中
  • 当一个节点添加后,原链表应摘除此节点

代码如下:

var mergeTwoLists = function(list1, list2) {
    const prehead = new ListNode(-1);

    let prev = prehead;
    while (list1 != null && list2 != null) {
        if (list1.val <= list2.val) {
            prev.next = list1;
            list1 = list1.next;
        } else {
            prev.next = list2;
            list2 = list2.next;
        }
        prev = prev.next;
    }

    prev.next = list1 === null ? list2 : list1;

    return prehead.next;
};