剑指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;
};
相关文章
|
存储 JavaScript 前端开发
JavaScript实现单向链表
JavaScript实现单向链表
305 109
|
存储 JSON JavaScript
「offer来了」保姆级巩固你的js知识体系(4.0w字)
该文章提供了JavaScript知识体系的全面复习资料,覆盖了从基础语法到高级特性如闭包、原型链、异步编程等多个方面,并通过大量的面试题和实例代码帮助巩固理解。
「offer来了」保姆级巩固你的js知识体系(4.0w字)
|
存储 算法
LeetCode第83题删除排序链表中的重复元素
文章介绍了LeetCode第83题"删除排序链表中的重复元素"的解法,使用双指针技术在原链表上原地删除重复元素,提供了一种时间和空间效率都较高的解决方案。
LeetCode第83题删除排序链表中的重复元素
(剑指offer)18、删除链表的节点—22、链表中倒数第K个节点—25、合并两个排序的链表—52、两个链表的第一个公共节点(2021.12.07)
(剑指offer)18、删除链表的节点—22、链表中倒数第K个节点—25、合并两个排序的链表—52、两个链表的第一个公共节点(2021.12.07)
182 0
|
算法
❤️算法笔记❤️-(每日一刷-83、删除排序链表中的重复项)
❤️算法笔记❤️-(每日一刷-83、删除排序链表中的重复项)
190 0
|
存储 人工智能 测试技术
每日练习之排序——链表的合并;完全背包—— 兑换零钱
每日练习之排序——链表的合并;完全背包—— 兑换零钱
120 2
|
存储 算法 Java
LeetCode初级算法题:反转链表+统计N以内的素数+删除排序数组中的重复项Java详解
LeetCode初级算法题:反转链表+统计N以内的素数+删除排序数组中的重复项Java详解
149 0
|
存储 SQL 算法
LeetCode 83题:删除排序链表中的重复元素【面试】
LeetCode 83题:删除排序链表中的重复元素【面试】
|
存储 SQL 算法
LeetCode 题目 82:删除排序链表中的重复元素 II
LeetCode 题目 82:删除排序链表中的重复元素 II
【一刷《剑指Offer》】面试题 17:合并两个排序的链表
【一刷《剑指Offer》】面试题 17:合并两个排序的链表

热门文章

最新文章