leetcode 21.合并两个有序链表

Leetcode 21合并两个有序链表 咕咕咕,之前忙着看Django,又咕了leetcode好多天,今天开始每天一题leetcode加题解启动(发出了不咕咕咕的叫声 今天的题目是这样的 将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4 题意清晰,是一道... 阅读详情

leetcode 21.合并两个有序链表

题目描述

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

示例:
输入:1->2->4, 1->3->4
输出:1->1->2->3->4->4

解题思路

该题是链表的操作,首先定义一个节点,用该节点做为头节点不断的添加元素,当其中一个链表排序完了以后,把另一个链表直接追加在定义的链表的尾部就可以了,按照这个思路,代码如下:

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
class Solution {
public:
    ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {
        ListNode* l = new ListNode(-1);   // 存储结果的链表
        ListNode* cur = l;                // 用于指针的移动
        // 当两个链表的指向都不为空时,两个链表做比较排序
        while(l1!=NULL && l2!=NULL){
            if(l1->val <= l2->val){
                cur->next = l1;
                l1 = l1->next;
            }
            else{
                cur->next = l2;
                l2 = l2->next;
            }
            cur = cur->next;
        }
        // 链表不为空时,直接追加在尾部
        if(l1 != NULL){
            cur->next = l1;
        }
        if (l2 != NULL){
            cur->next = l2;
        }
        return l->next;
    }
};

递归的写法

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
class Solution {
public:
    ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {
        if(l1 == NULL){
            return l2;
        }
        if(l2 == NULL){
            return l1;
        }
        
        ListNode* l; // 存储合并的链表
        if (l1->val <= l2->val){
            l = l1;
            l->next = mergeTwoLists(l1->next, l2);
        }
        else{
            l = l2;
            l->next = mergeTwoLists(l1, l2->next);
        }

        return l;
    }
};

欢迎大家关注我的个人公众号,同样的也是和该博客账号一样,专注分享技术问题,我们一起学习进步
在这里插入图片描述

第1章:认识OpenClaw OpenClaw是一个开源的 AI 智能体 Gateway 网关项目名称演变:OpenClaw 原名 Clawdbot,因 Anthropic 商标顾虑在 2026年1月27日更名为 Moltbot(过渡名),最终在1月30日确定为 OpenClaw。三个名字本质是同一个项目,功能完全一致。🏠在你的电脑上运行:完全本地部署,数据隐私有保障📁访问本地文件:可以搜索、读取、编辑你电脑上的文件🔌扩展能力:通过Skills(技能)系统无限扩展功能💬多平台使用。 阅读详情

相关推荐

NVMe与PCIe的完美结合:高速存储背后的技术解析

本文深入解析了NVMe与PCIe技术如何完美结合,实现高速存储性能的飞跃。从机械硬盘到NVMe SSD的进化历程出发,详细介绍了PCIe总线的高带宽优势与NVMe协议的低延迟设计,以及两者协同工作带来的显著性能提升。通过实测数据对比,展示了NVMe SSD在消费级和企业级应用中的卓越表现,并提供了选购与优化建议。

weixin_29216353的博客 376

LeetCode 21. 合并两个有序链表

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

一起加油 5575

PHP版本对接支付宝支付接口 电脑网站 详细介绍 沙箱环境 超简单易懂

PHP版本对接支付宝支付接口 其实理顺了思路后,按照我接下来的步骤来,真的超级简单啊,为啥有那么多的朋友们折腾了那么久呢,嘿嘿,跟我走吧~ 我是昨天晚上洗完澡之后,大概八九点,才开始正式开工尝试去这一工程的,我去支付宝的蚂蚁金服开放平台里把各个知识点和文档大概都看了一遍,大致弄明白了要怎么操作了,建议大家看看电脑网站开发文档,忙到了夜里十二点左右,成功地用支付宝给的Demo完成了付款操...

爱玲姐姐的博客 1万+

【力扣LeetCode】21 合并两个有序链表

题目描述(难度易) 将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4 链接 https://leetcode-cn.com/problems/remove-nth-node-from-end-of-list/ 思路...

Jiewang的博客 249

数据仓库的复用性:设计和构建一个高复用性的数仓

数据仓库的复用性是指在数据仓库的设计和使用过程中,能够实现数据、模型、流程、工具等多个层面的重复利用,减少重复开发,提高开发效率,降低维护成本,并增强灵活性和可扩展性。

z1941563559的博客 1307

《IC验证必看|IC验证的全流程概览(从DUT到回归交付)》

本文系统介绍了IC验证的全流程,从理解设计需求到最终交付验证结果。主要内容包括:1)深入理解DUT的功能和接口;2)制定详细的测试计划(Testplan);3)搭建UVM验证平台;4)执行定向和随机测试并进行回归;5)分析功能、代码和断言覆盖率;6)交付完整的验证报告。文章强调验证是一个闭环过程,特别指出新手容易忽视测试计划和覆盖率分析这两个关键环节,导致验证不充分。文末还提出思考题,引导读者反思验证计划的制定方法。

m0_46663240的博客 1261

leetcode力扣21题合并两个有序链表

【代码】leetcode力扣21题合并两个有序链表。

xiaohao0001abc的博客 170

Disk Drill 使用教程

Disk Drill只需单击几下,即可恢复USB闪存驱动器上已删除的数据,包括丢失的照片,文档和其他文件类型。Disk Drill是真正的多合一应用程序,可在Mac上恢复闪存驱动器。Disk Drill将自动应用最佳的笔式驱动器恢复算法来恢复Mac数据。 USB闪存驱动器是一种传输和存储信息的好方法,但是如果错误地丢失或删除了存储在其中的文件,会发生什么呢?当您需要Mac的闪存驱动器数据恢复软件时,Disk Drill是您的最佳选择。Disk Drill将扫描您的USB闪存驱动器(也称为笔式驱动器)并查找

zjj778899的博客 1万+

LeetCode 21:合并两个有序链表

目录LeetCode 21:合并两个有序链表题目描述解题迭代递归 LeetCode 21:合并两个有序链表 题目描述 将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 【示例】 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4 【难度】 简单 解题 【思路】     两个链表都是有序的,所以要完成的就是在对两个链表遍历的过程中,根据当前节点的大小,对节点进行断开和链接。 迭代

s_Shune 418

别再迷信Intel网卡了!用普通笔记本+TWINCAT3搭建EtherCAT主站的完整避坑实录

本文详细介绍了如何用普通笔记本和TWINCAT3搭建EtherCAT主站的完整避坑指南。通过破除必须使用Intel网卡的迷思,提供软件环境搭建、关键配置步骤、Wireshark抓包技巧及性能优化建议,帮助开发者低成本实现EtherCAT主站功能。

weixin_29305337的博客 704

麒麟V10服务器多硬盘安装与分区实战:告别自动分区,手动分配/boot、swap和/根目录

本文详细介绍了麒麟V10服务器在多硬盘环境下的手动分区策略,包括/boot、swap和/根目录的优化分配方案。通过SSD与HDD混合存储架构的合理规划,提升系统性能和运维效率,适用于企业级定制化系统部署需求。

weixin_26976635的博客 406

LeetCode(力扣) 21.合并两个有序链表

升序合并两个链表的递归与迭代解法

2302_76866243的博客 444

ASF-YOLO:一种基于注意尺度序列融合的细胞实例分割YOLO模型

随着样本制备技术和显微成像技术的快速发展,细胞图像的定量处理和分析在医学、细胞生物学等领域发挥着重要作用。基于卷积神经网络(CNN),可以通过神经网络训练学习不同细胞图像的特征信息,具有很强的泛化性能。两阶段的R-CNN系列[1,2,3]及其一阶段变体[4,5]是实例分割任务的经典CNN基础框架。在最近的研究中,You Only Look Once(YOLO)系列[6,7,8,9]已经成为实时实例分割中速度最快、最准确的模型之一。

m0_47867638的博客 9798

力扣-21.合并两个有序链表

小结:注意题目中的链表没有头结点,边界问题。

weixin_46878941的博客 468

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

《LeetCode力扣练习》第21题 合并两个有序链表 Java

《LeetCode力扣练习》第21题 合并两个有序链表 Java 一、资源 题目: 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 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.

XRT_knives的博客 268

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

递归-21.合并两个有序链表-力扣(LeetCode)

个人主页:1白天的黑夜1-优快云博客专栏:力扣刷题录_1白天的黑夜1的博客-优快云博客、企鹅程序员:Linux 系统与网络编程_1白天的黑夜1的博客-优快云博客目录一、题目解析1、合并两个有序链表2、新链表节点是由给定两个链表拼接而成的二、算法原理解法:递归如何写递归代码?1、重复的子问题->函数头设计2、只关心某一个子问题做什么->设计函数体3、递归的出口对于链表类的题,还是建议多画图,去体会链接的过程,题目链接放在下面,可以去动手敲敲三、代码示例四、递归展开图看到最后,如果对您有所帮助,还请点赞、

black_bear_white的博客 1324

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

LeetCode:21. 合并两个有序链表(python)

LeetCode:21. 合并两个有序链表(python) 将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4 LeetCode 链接 思路: 迭代,遍历两个链表,比较两个节点值,指向较小值节点 递归,比较链表...

wk的博客 1070

力扣LeetCode第21题合并两个有序链表

力扣第21题合并两个有序链表

weixin_44061444的博客 1572

力扣(LeetCode)21. 合并两个有序链表

将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4 思路:难点在于这是无头节点的链表,所以要首先找出头节点较小的链表标记为Min,另一个标记为Max,这样就对Max进行遍历,如果Max的值大于等于Min当前的值且小于...

Pwnpanda的博客 405

Leetcode 21 有序链表合并【python】

Leetcode 21 有序链表合并题目描述代码解题思路 题目描述 Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists. Example Input: 1->2-...

Emelia_的博客 152

21. 合并两个有序链表 - 力扣(LeetCode)

这个思路的关键在于利用两个指针来同时遍历两个链表,通过比较节点值来决定哪个节点应该被添加到新链表中。同时,通过哑节点来简化链表的头节点操作。来遍历两个链表,并通过比较它们的值来决定哪个节点应该被添加到新链表中。最后,如果其中一个链表还有剩余节点,我们直接将它们连接到新链表的末尾。最后,我们返回哑节点的下一个节点,它实际上是新链表的头节点。新链表是通过拼接给定的两个链表的所有节点组成的。,并将它们合并为一个新的链表,然后打印出合并后的链表的值。在示例代码中,我们创建了两个示例链表。类来表示链表节点,并在。

it爱好者的学习之路 2797

LeetCode 21:合并两个有序链表(Java实现)

LeetCode 21:合并两个有序链表(Java实现) 题目 将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例:输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems...

qq_45093368的博客 491

golang力扣leetcode 21.合并两个有序链表

21.合并两个有序链表21.合并两个有序链表题解代码 21.合并两个有序链表 21.合并两个有序链表 题解 1:55才把git总结好,做个水题睡觉了,,愿星光不负赶路人吧,两种实现方式 代码 package main type ListNode struct { Val int Next *ListNode } func mergeTwoLists1(l1 *ListNode, l2 *ListNode) *ListNode { if l1 == nil { return l2 } if

清风 562

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

力扣 21. 合并两个有序链表 本文仅仅简单讲解了《合并两个有序链表》这一题目,对递归算法有了更深的理解

m0_51787573的博客 445

leetcode刷题记录——21合并两个有序链表

题目: leetcode刷题记录——21合并两个有序链表 代码: /** * Definition for singly-linked list. * function ListNode(val) { * this.val = val; * this.next = null; * } */ /** * @param {ListNode} l1 * @param {...

weixin_41246577的博客 211

LeetCode21_合并两个有序链表

链表的基本递归和迭代

Haolin_Liu的博客 1086
上一篇: leetcode 1.两数之和
下一篇: leetcode 2.两数相加
黑暗主宰
博客等级 码龄9年 72粉丝 169原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值