力扣21:合并两个有序链表

news2024/9/20 20:47:54

力扣21:合并两个有序链表
**题目描述:**将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
示例 1:
在这里插入图片描述

输入:l1 = [1,2,4], l2 = [1,3,4]
输出:[1,1,2,3,4,4]
示例 2:

输入:l1 = [], l2 = []
输出:[]
示例 3:

输入:l1 = [], l2 = [0]
输出:[0]

提示:

两个链表的节点数目范围是 [0, 50]
-100 <= Node.val <= 100
l1 和 l2 均按 非递减顺序 排列

分析:

创建一个新的链表,使用head记录新链表的头节点,tail记录新链表的尾节点,逐个比较list1的值和list2的值,较小的尾插到新的链表后面。

遍历,当list1、list2其中一个链表为空时,那么结束遍历。

当list1->val < list2->next,则list1尾插到新链表后面;
当list1->val > ist2->next,则list2尾插到新链表后面。

如果list1为空链表,那么直接返回list2链表;
反之,直接返回list1链表即可。

如果其中一个链表已经遍历完了,那么只需要将另一个链表全部尾插到新建的链表后面即可。

需要注意的是:在尾插时,刚开始新链表为空,需要判断一下新链表为空,然后使得待插元素为头节点,并且也是尾节点。

代码:

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     struct ListNode *next;
 * };
 */
struct ListNode* mergeTwoLists(struct ListNode* list1, struct ListNode* list2) {
    struct ListNode*head=NULL,*tail=NULL;
    if(list1==NULL)
        return list2;
    if(list2==NULL)
        return list1;
    while(list1&&list2)
    {
        if(list1->val<list2->val)
        {
            if(tail==NULL)
            {
                head=tail=list1;
            }
            else{
                tail->next=list1;
                tail=tail->next;
            }
            list1=list1->next;
        }
        else
        {
            if(tail==NULL)
            {
                head=tail=list2;
            }
            else{
                tail->next=list2;
                tail=tail->next;
            }
            list2=list2->next;
        }
    }
    if(list1)
    {
        tail->next=list1;

    }
    if(list2)
    {
        tail->next=list2;
    }
    return head;
}

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

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

相关文章

项目管理之如何出道(下)

前言 是谁用烛火照亮整个中国&#xff1f;是一伙伙行走在高压线上的电力工人&#xff1b; 是谁用水枪保护千家万户&#xff1f;是一组组穿梭于大街小巷的消防队伍&#xff1b; 是谁用身体捍卫国防边境&#xff1f;是一队队跋涉在高山深林的可爱战士。 那么作为IT业界的我们&…

Leetcode_3:Pow(x,n)

题目描述&#xff1a; 实现 pow(x, n) &#xff0c;即计算 x 的整数 n 次幂函数。 示例 1&#xff1a; 输入&#xff1a;x 2.00000, n 10 输出&#xff1a;1024.00000示例 2&#xff1a; 输入&#xff1a;x 2.10000, n 3 输出&#xff1a;9.26100示例 3&#xff1a; 输入&…

阿里云99元的主机到底怎么样?

我是卢松松&#xff0c;点点上面的头像&#xff0c;欢迎关注我哦&#xff01; 在云栖大会上&#xff0c;阿里云推出了一款绝对超级超值的99元云服务器&#xff0c;并号称是11月销量王。什么?云栖大会11月2号结束的&#xff0c;你就号称11月销量王&#xff0c;这是未卜先知啊。…

【MySQL进阶之路丨第十七篇(完结)】一文带你精通MySQL运算符

引言 在上一篇中我们介绍了MySQL函数&#xff1b;在开发中&#xff0c;对MySQL运算符的运用是十分重要的。这一篇我们使用命令行方式来帮助读者掌握MySQL中运算符的操作。 上一篇链接&#xff1a;【MySQL进阶之路丨第十六篇】一文带你精通MySQL函数 MySQL运算符 MySQL中的运…

Embedding技术与应用(3):Embeddings技术的实践应用

编者按&#xff1a; IDP开启Embedding系列专栏&#xff0c;力图详细介绍Embedding的发展史、主要技术和应用。 本文是《Embedding技术与应用系列》的第三篇&#xff0c;重点介绍 嵌入技术在生产环境中的应用效果到底如何。 文章作者认为&#xff0c;嵌入技术可以有效地表示用户…

Lua更多语法与使用

文章目录 目的错误处理元表和元方法垃圾回收协程模块面向对象总结 目的 在前一篇文章&#xff1a; 《Lua入门使用与基础语法》 中介绍了一些基础的内容。这里将继续介绍Lua一些更多的内容。 同样的本文参考自官方手册&#xff1a; https://www.lua.org/manual/ 错误处理 下…

Python开源项目CodeFormer——人脸重建(Face Restoration),模糊清晰、划痕修复及黑白上色的实践

无论是自己、家人或是朋友、客户的照片&#xff0c;免不了有些是黑白的、被污损的、模糊的&#xff0c;总想着修复一下。作为一个程序员 或者 程序员的家属&#xff0c;当然都有责任满足他们的需求、实现他们的想法。除了这个&#xff0c;学习了本文的成果&#xff0c;或许你还…

漏极开路/集电极开路OD/OC上拉电阻选型参数确定方法及应用场景经验总结

🏡《电子元器件学习目录》 目录 1,概述2,最小值2.1,饱和区2.2,逻辑低电平3,最大值3.1,驱动能力3.2,信号上升沿4,应用场景5,总结1,概述 如下图所示MOS管的集电极开路直接输出的形式被称为OD输出;如果使用的是三极管则被称为OC输出。在实际使用中OD或OC输出需要根据…

【Git】中Gui的使用和SSH协议的讲解及IDEA开发中使用git

目录 一、Gui使用 1. 使用 2. 功能 二、SSH协议 1. 讲解 2. 生成密钥 3. 远程仓库绑定公钥 三、IDEA使用 1. IDEA配置git 2. IDEA安装gitee 3. IDEA中登入Git 4. 项目分享 5. 克隆分享的项目 6. idea上传远程 一、Gui使用 (Gui) 是指图形用户界面&#xff0c;它…

半导体高加速应力测试及标准

半导体高加速应力测试及标准 随着电气和电子元件变得越来越密集&#xff0c;现在对零件和材料的高度加速应力测试的需求更大。 高加速应力测试系统&#xff08;HAST 室&#xff09;主要设计用于使用设定的施加电压和信号进行偏置测试。 控制功能可选择标准的不饱和控制和湿饱和…

SLAM从入门到精通(光源的控制)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 前面我们说过&#xff0c;图像在二维码、道路检测、故障物检测方面都有很重要的作用。但是&#xff0c;这里面就有一个前提&#xff0c;那就是图像…

月销破30万辆后,比亚迪整了波大的

最近乘联会公布了 2023 年 10 月新能源乘用车厂商销量榜单。 其中最为亮眼犹如鹤立鸡群的榜首&#xff0c;没错依然是我们熟悉的那个迪子&#xff01; 单月销量超 30 万辆&#xff0c;相较去年同期暴涨 38.4%&#xff0c;创下了比亚迪有史以来新高。 同时也成为了国内首个月销…

秋招进入尾声了,还有哪些公司和岗位可以投递?

24届秋招基本已经进入尾声了&#xff0c;接下来就是秋招补录了&#xff0c;最近在微信群看到一些同学再问哪些公司还在招人的。 在这里跟大家分享一份2024届秋招信息汇总表&#xff0c;目前已更新2000家&#xff0c;不仅有互联网公司&#xff0c;还有外企、国企、各类研究所&am…

基于SSM的个人网站的设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;Vue 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#xff1a;是 目录…

神奇工具!这7个软件让设计轻松起飞

作为一个设计小白&#xff0c;你还在问前辈们有没有好的设计软件吗&#xff1f;还是没地方问&#xff0c;只能去百度搜索&#xff1f;如果是这样&#xff0c;那么接下来的文章正好可以解决你的问题。本文将介绍7种常用的平面设计工具&#xff0c;每种平面设计工具都有自己的特点…

Sprint Boot 学习路线 3

嵌入式服务器 Spring Boot 的嵌入式服务器功能是一项方便而强大的功能&#xff0c;它允许你在应用程序中直接运行 Web 服务器&#xff0c;无需将其部署到单独的独立 Web 服务器中。这使得开发、测试和部署 Web 应用程序变得容易&#xff0c;而且它还是轻量级的、易于启动和停止…

基于SSM的游戏销售系统的设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;Vue 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#xff1a;是 目录…

用朴素贝叶斯实现垃圾邮箱分类实验报告

一、实验目的 1.会用Python创建朴素贝叶斯模型 2.使用朴素贝叶斯模型对垃圾邮件分类 3.会把文本内容变成向量 4.会用评价朴素贝叶斯模型的分类效果 二、设备与环境 Jupyter notebook Python3.9 三、实验原理 四、实验内容 1.把给定的数据集message.csv拆分成训练集和测试集&…

jsvascript使用dhtmlXTreeObject的loadJSONObject绘制目录树

文章目录 1&#xff0c;引入dhtmlXTreeObject的css和js文件2&#xff0c;创建一棵目录树2.1&#xff0c;let tree new dhtmlXTreeObject(id-dhtmltree-0, "100%", "100%", 0);2.2&#xff0c;设置图片根目录&#xff08;后续使用到的图片都是相对于该目录…

基于insightface实现的人脸检测,人脸识别,insightface源码讲解。

目录 1.搭建insightface需要的环境 2.下载insightface工程 3.代码工程文件讲解 3.1 python-package 3.2 进行测试 3.3 examples 4. 人脸识别 5.代码理解&#xff1a; 1.搭建insightface需要的环境 埋个坑&#xff0c;后续再写&#xff0c;笔者在安装过程中遇到了一些问题。…