HOT100——合并两个有序列表(JS实现)

简介: HOT100——合并两个有序列表(JS实现)

题目描述

image.png

解题思路

  • 首先我们要看清题干,本题给出的两个链表都是有序的,所以我们可以考虑双指针。
  • 使用一个指针指向了l1的头节点,使用另一个指针指向l2的头节点,比较大小谁小谁添加到新节点的下一个。
  • 当一个遍历完之后,结束循环,如果另一个有剩余则将其全部加到最新的链表末尾。

解题代码

var mergeTwoLists = function(l1, l2) {
    // 首先两个链表都是升序的,我们可以考虑双指针
    let left = l1;
    let right = l2;
    const node = new ListNode();
    let head = node;
    while (left && right) {
        if (left.val < right.val) {
            head.next = left;
            left = left.next; 
            head = head.next;
        } else {
            head.next = right;
            right = right.next;
            head = head.next;
        }
    }
    if (!left && right) {
        head.next = right;
    }
    if (!right && left) {
        head.next = left;
    }
    return node.next
};

启示

  • 学会使用双指针来对链表进行合并排序。
相关文章
|
2月前
|
JavaScript 前端开发
JS将两个数组和合并成数组包对象格式的方法
JS将两个数组和合并成数组包对象格式的方法
28 0
|
3月前
|
JavaScript 前端开发 小程序
js数组合并的4中方法 必看
js数组合并的4中方法 必看
|
5月前
|
JavaScript 前端开发 安全
|
7月前
|
JavaScript 前端开发
谈谈 JavaScript 中的空值合并操作符 Nullish coalescing operator
谈谈 JavaScript 中的空值合并操作符 Nullish coalescing operator
33 0
|
7月前
|
JavaScript
js两个二维数组合并并去除相同项(整理)
js两个二维数组合并并去除相同项(整理)
js两个二维数组合并并去除相同项(整理)
|
7月前
|
JavaScript
js数组合并(整理)
js数组合并(整理)
|
8月前
|
JavaScript
JS数组合并(5种)
JS数组合并(5种)
66 0
|
9月前
|
JavaScript 前端开发
如何在 JavaScript 中合并两个数组而不出现重复的情况
如何在 JavaScript 中合并两个数组而不出现重复的情况
|
9月前
|
JavaScript 前端开发 算法
如何在 JavaScript 中合并两个数组而不出现重复的情况
如何在 JavaScript 中合并两个数组而不出现重复的情况
|
9月前
|
JSON JavaScript 前端开发
javascript对象数据合并实现补齐24小时时间段同时赋值0的解决方案
javascript对象数据合并实现补齐24小时时间段同时赋值0的解决方案
94 0