剑指Offer——合并两个排序的链表(JS实现)

简介: 剑指Offer——合并两个排序的链表(JS实现)

题目描述

image.png

解题思路

  • 创建一个新的链表节点newNode
  • 指定一个临时指针h指向这个新的节点newNode
  • 使用while循环,在条件为L1和L2都不为空的条件下遍历,如果L1当前数据域的值小,就让newNode指向L1,反之指向L2
  • while循环遍历完之后,如果L1和L2谁还有剩余,谁就加到newNode的尾部。
  • 最后返回的是h临时指针的next域,因为h临时指针刚开始指向的是我们新创建的节点。

实现代码

var mergeTwoLists = function(l1, l2) {
    // 首先创建一个新的节点
    let newNode = new ListNode();
    const h = newNode;
    // 循环遍历两个列表
    while (l1 && l2) {
        if (l1.val < l2.val) {
            newNode.next = l1;
            l1 = l1.next;
            newNode = newNode.next;
        } else {
            newNode.next = l2;
            l2 = l2.next;
            newNode = newNode.next;
        }
    } 
    if (l1) newNode.next = l1;
    if (l2) newNode.next = l2;
    return h.next;
};
相关文章
|
2月前
|
存储 JSON JavaScript
「offer来了」保姆级巩固你的js知识体系(4.0w字)
该文章提供了JavaScript知识体系的全面复习资料,覆盖了从基础语法到高级特性如闭包、原型链、异步编程等多个方面,并通过大量的面试题和实例代码帮助巩固理解。
「offer来了」保姆级巩固你的js知识体系(4.0w字)
|
30天前
(剑指offer)18、删除链表的节点—22、链表中倒数第K个节点—25、合并两个排序的链表—52、两个链表的第一个公共节点(2021.12.07)
(剑指offer)18、删除链表的节点—22、链表中倒数第K个节点—25、合并两个排序的链表—52、两个链表的第一个公共节点(2021.12.07)
43 0
|
1月前
|
算法
❤️算法笔记❤️-(每日一刷-83、删除排序链表中的重复项)
❤️算法笔记❤️-(每日一刷-83、删除排序链表中的重复项)
30 0
|
3月前
|
存储 算法
LeetCode第83题删除排序链表中的重复元素
文章介绍了LeetCode第83题"删除排序链表中的重复元素"的解法,使用双指针技术在原链表上原地删除重复元素,提供了一种时间和空间效率都较高的解决方案。
LeetCode第83题删除排序链表中的重复元素
|
3月前
|
Python
【Leetcode刷题Python】剑指 Offer 22. 链表中倒数第k个节点
Leetcode题目"剑指 Offer 22. 链表中倒数第k个节点"的Python解决方案,使用双指针法找到并返回链表中倒数第k个节点。
52 5
|
3月前
|
Python
【Leetcode刷题Python】剑指 Offer 18. 删除链表的节点
Leetcode题目"剑指 Offer 18. 删除链表的节点"的Python解决方案,通过使用双指针法找到并删除链表中值为特定数值的节点,然后返回更新后的链表头节点。
41 4
|
3月前
|
存储 JavaScript 前端开发
JavaScript实现单向链表
JavaScript实现单向链表
21 0
|
3月前
|
存储 算法 Java
LeetCode初级算法题:反转链表+统计N以内的素数+删除排序数组中的重复项Java详解
LeetCode初级算法题:反转链表+统计N以内的素数+删除排序数组中的重复项Java详解
44 0
|
5月前
|
存储 人工智能 测试技术
每日练习之排序——链表的合并;完全背包—— 兑换零钱
每日练习之排序——链表的合并;完全背包—— 兑换零钱
31 2
|
4月前
|
JavaScript
JS 【详解】双指针排序 -- 数组合并后递增排序
JS 【详解】双指针排序 -- 数组合并后递增排序
29 0