力扣刷题Day11--21. 合并两个有序链表(js)

news2024/10/26 0:25:09

目录

1,题目

2,代码

2.1迭代思想

2.2递归思想

3,学习与总结

3.1js中的链表类

3.2递归思想

3.3提醒自己



1,题目

将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 

2,代码

2.1迭代思想

/**
 * Definition for singly-linked list.
 * function ListNode(val, next) {
 *     this.val = (val===undefined ? 0 : val)
 *     this.next = (next===undefined ? null : next)
 * }
 */
/**
 * @param {ListNode} list1
 * @param {ListNode} list2
 * @return {ListNode}
 */
var mergeTwoLists = function(list1, list2) {
    //   迭代思想
    const resList = new ListNode(-1);
    let pre = resList;

    while(list1!=null &&list2!=null){
        if(list1.val <= list2.val){
            pre.next=list1;
            list1=list1.next;
        }else{
            pre.next = list2;
            list2=list2.next;
        }
        pre = pre.next;
    }
    // 合并后 l1 和 l2 最多只有一个还未被合并完 
    // null时直接结束while,并没有更新pre.next
    pre.next = list1===null?list2:list1;
    return resList.next;

};

2.2递归思想

/**
 * Definition for singly-linked list.
 * function ListNode(val, next) {
 *     this.val = (val===undefined ? 0 : val)
 *     this.next = (next===undefined ? null : next)
 * }
 */
/**
 * @param {ListNode} list1
 * @param {ListNode} list2
 * @return {ListNode}
 */
var mergeTwoLists = function(list1, list2) {
    if(list1===null){
        return list2;
    }else if(list2===null){
        return list1;
    }else if(list1.val < list2.val){
        list1.next = mergeTwoLists(list1.next,list2);
        return list1;
    }else {
        list2.next =  mergeTwoLists(list1,list2.next);
        return list2;
    }

};

3,学习与总结

3.1js中的链表类

3.2递归思想

  • 递归函数必须要有终止条件,否则会出错;
  • 递归函数先不断调用自身,直到遇到终止条件后进行回溯,最终返回答案。

3.3提醒自己

多看动图加以理解 

多巩固

递归 迭代思想常做 从而加强自己的理解与代码能力!!!

. - 力扣(LeetCode)


勉励自己:贵在坚持!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1497369.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

买不到的数目c++

题目 输入样例&#xff1a; 4 7输出样例&#xff1a; 17 思路 一个字&#xff0c;猜。 一开始不知道怎么做的时候&#xff0c;想要暴力枚举对于特定的包装n, m&#xff0c;最大不能买到的数量maxValue是多少&#xff0c;然后观察性质做优化。那么怎么确定枚举结果是否正确呢…

微服务之商城系统

一、商城系统建立之前的一些配置 1、nacos Nacos是一个功能丰富的开源平台&#xff0c;用于配置管理、服务发现和注册、健康检查等&#xff0c;帮助构建和管理分布式系统。 在linux上安装nacos容器的命令&#xff1a; docker run --name nacos-standalone -e MODEstandalone …

Ubuntu环境配置-LinuxQQ篇

本教程下载Linux QQ的版本是linuxqq_3.0.0-571_amd64.deb 一、下载LinuxQQ 直接使用wget命令下载链接&#xff0c;下载文件 wget https://dldir1.qq.com/qqfile/qq/QQNT/c005c911/linuxqq_3.0.0-571_amd64.deb 二、安装LinuxQQ 当下载完成后&#xff0c;运行命令&#xff1a;…

Vue.js+SpringBoot开发海南旅游景点推荐系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 用户端2.2 管理员端 三、系统展示四、核心代码4.1 随机景点推荐4.2 景点评价4.3 协同推荐算法4.4 网站登录4.5 查询景点美食 五、免责说明 一、摘要 1.1 项目介绍 基于VueSpringBootMySQL的海南旅游推荐系统&#xff…

Qt+Opencv实现视频二维码检测

编译器&#xff1a;Qt 5.12.2Visual Studio 2015 视觉库&#xff1a;OpenCV 4.5.5 能够加载MP4格式视频、读取、定位二维码并输出与反馈信息的软件 需要演示Demo可私信

在centos7系统中如何给docker配置代理

一、需求场景 生产环境私有云中&#xff0c;通常一个集群的机器中只有几台机器可以直接访问公网&#xff0c;其他机器需要通过代理的方式从能访问公网的机器出去&#xff0c;在已经做了如下配置之后&#xff0c;使用docker pull命令已经报错超时timeout&#xff0c;这时可以尝…

电子签名签章:重塑企业办公方式,开启智能合约新时代!

在现代社会&#xff0c;随着科技的发展&#xff0c;纸质文件逐渐被电子文件所取代&#xff0c;传统的签名方式也面临着数字化的转型。电子签名签章云服务就是在这样的背景下应运而生的一种新型技术服务&#xff0c;它结合了云计算、大数据、人工智能等前沿技术&#xff0c;为用…

鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:Checkbox)

提供多选框组件&#xff0c;通常用于某选项的打开或关闭。 说明&#xff1a; API version 11开始&#xff0c;Checkbox默认样式由圆角方形变为圆形。 该组件从API Version 8开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版本。 子组件 无 接口…

华容道问题求解_详细设计(三)之查找算法1_DFS

&#xff08;续上篇&#xff09; 使用DFS查找算法的原因是因为它符合本人的思考习惯&#xff0c;另外在第一版时用的就是这个方法&#xff0c;后来知道这不是查找这类问题的最好方法。 在前面的概要设计中的框图里描述的方法就是DFS&#xff0c;它可以找到一个解法&#xff0c;…

LVS集群 ----------------(直接路由 )DR模式部署

一、LVS集群的三种工作模式 lvs-nat&#xff1a;修改请求报文的目标IP,多目标IP的DNAT lvs-dr&#xff1a;操纵封装新的MAC地址&#xff08;直接路由&#xff09; lvs-tun&#xff1a;隧道模式 lvs-dr 是 LVS集群的 默认工作模式 NAT通过网络地址转换实现的虚拟服务器&…

STM32CubeIDE基础学习-代码编译介绍

STM32CubeIDE基础学习-代码的编译介绍 前言 当写完代码后&#xff0c;即在调试和下载代码之前都是需要对工程代码进行编译的操作&#xff0c;不然是无法正常进行代码调试和下载的&#xff0c;所以编译这一步是一个关键步骤。 下面就来介绍下STM32CubeIDE软件环境的代码编译方…

Spring Boot 3核心技术与最佳实践

&#x1f482; 个人网站:【 海拥】【神级代码资源网站】【办公神器】&#x1f91f; 基于Web端打造的&#xff1a;&#x1f449;轻量化工具创作平台&#x1f485; 想寻找共同学习交流的小伙伴&#xff0c;请点击【全栈技术交流群】 highlight: a11y-dark 引言 Spring Boot作为…

C++ · 代码笔记3 · 引用

目录 前言011引用初探_引用与普通变量012引用初探_引用作为函数参数013引用初探_引用作为函数返回值014引用初探_引用返回局部函数造成的错误015引用初探_多级引用020引用与指针递增的区别030const与引用040使用const限定的函数形参引用 前言 本笔记所涉及到的编程环境与 《C …

社区店选址案例分享:从成功案例中汲取经验

想开实体店或创业的朋友们&#xff0c;大家好&#xff01;我是一名鲜奶吧5年的创业者&#xff0c;今天我将以开店专家的角度&#xff0c;为大家分享一些社区店选址的成功案例&#xff0c;希望能给你们带来启发和帮助。 选址是实体店成功的关键之一&#xff0c;而社区店更是要注…

16 进程终止

终止的结果 进程终止后&#xff0c;释放申请的相关内核数据结构和对应的数据和代码。本质就是释放系统资源 终止的场景 代码跑完&#xff0c;结果正确代码跑完&#xff0c;结果不正确代码没有跑完&#xff0c;程序崩溃 进程常见退出方法 正常退出&#xff1a; 1.main返回 …

selenium-java web自动化测试工具抓取百度搜索结果实例

&#x1f525; 交流讨论&#xff1a;欢迎加入我们一起学习&#xff01; &#x1f525; 资源分享&#xff1a;耗时200小时精选的「软件测试」资料包 &#x1f525; 教程推荐&#xff1a;火遍全网的《软件测试》教程 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1…

高中数学:函数类高阶题目考法汇总(较难)

1、基本性质类问题 2、解抽象函数不等式问题 在1的基础上 解题思路&#xff1a; 根据f的单调性&#xff0c;去f 将问题转化成具体不等式问题。 例题&#xff1a; 对于第三小问&#xff0c;每一个变形前面&#xff0c;都要加上只要证、即证关键词&#xff0c;才不会被扣过程…

【STM32+HAL】姿态传感器陀螺仪MPU6050模块

一、准备工作 有关OLED屏初始化的问题&#xff0c;详见【STM32HAL】OLED显示初始化配置 二、所用工具 1、芯片&#xff1a;STM32F10C8T6 2、CUBEMX配置软件 3、 6 轴运动处理组件MPU6050 三、实现功能 OLED屏显示姿态角 四、HAL配置步骤 1、开启I2C1进行MPU6050通信 2、开…

红队攻击手“实战”特训

伴随着新的一年的到来&#xff0c;我们最新一期的红队攻防&#xff0c;也如约而至~ 每一期我们都会做二次学员反馈&#xff0c;根据同学们的真实反馈和需求&#xff0c;来调整讲师及授课内容 新的一期我们增加了C基础&#xff0c;python基础&#xff0c;汇编基础的课程&#…

LeetCode 刷题 [C++] 第139题.单词拆分

题目描述 给你一个字符串 s 和一个字符串列表 wordDict 作为字典。如果可以利用字典中出现的一个或多个单词拼接出 s 则返回 true。 注意&#xff1a;不要求字典中出现的单词全部都使用&#xff0c;并且字典中的单词可以重复使用。 题目分析 背包问题特征&#xff1a; 是否…