剑指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;
};
相关文章
|
6月前
|
存储 JSON JavaScript
「offer来了」保姆级巩固你的js知识体系(4.0w字)
该文章提供了JavaScript知识体系的全面复习资料,覆盖了从基础语法到高级特性如闭包、原型链、异步编程等多个方面,并通过大量的面试题和实例代码帮助巩固理解。
「offer来了」保姆级巩固你的js知识体系(4.0w字)
|
5月前
(剑指offer)18、删除链表的节点—22、链表中倒数第K个节点—25、合并两个排序的链表—52、两个链表的第一个公共节点(2021.12.07)
(剑指offer)18、删除链表的节点—22、链表中倒数第K个节点—25、合并两个排序的链表—52、两个链表的第一个公共节点(2021.12.07)
70 0
|
5月前
|
算法
❤️算法笔记❤️-(每日一刷-83、删除排序链表中的重复项)
❤️算法笔记❤️-(每日一刷-83、删除排序链表中的重复项)
51 0
|
7月前
|
存储 算法
LeetCode第83题删除排序链表中的重复元素
文章介绍了LeetCode第83题"删除排序链表中的重复元素"的解法,使用双指针技术在原链表上原地删除重复元素,提供了一种时间和空间效率都较高的解决方案。
LeetCode第83题删除排序链表中的重复元素
|
7月前
|
存储 JavaScript 前端开发
JavaScript实现单向链表
JavaScript实现单向链表
38 0
|
7月前
|
存储 算法 Java
LeetCode初级算法题:反转链表+统计N以内的素数+删除排序数组中的重复项Java详解
LeetCode初级算法题:反转链表+统计N以内的素数+删除排序数组中的重复项Java详解
58 0
|
8月前
|
JavaScript
JS 【详解】双指针排序 -- 数组合并后递增排序
JS 【详解】双指针排序 -- 数组合并后递增排序
52 0
|
9月前
|
存储 SQL 算法
LeetCode 83题:删除排序链表中的重复元素【面试】
LeetCode 83题:删除排序链表中的重复元素【面试】
|
9月前
|
存储 SQL 算法
LeetCode 题目 82:删除排序链表中的重复元素 II
LeetCode 题目 82:删除排序链表中的重复元素 II
|
9月前
|
存储 SQL 算法
LeetCode力扣第114题:多种算法实现 将二叉树展开为链表
LeetCode力扣第114题:多种算法实现 将二叉树展开为链表

热门文章

最新文章