python 合并两个排序的链表(递归解法)

LeetCode题解:21.合并两个有序列表【Python题解超详细,逐项比较法、迭代法】,知识拓展:归并排序与链表 LeetCode题解:21.合并两个有序链表【Python题解超详细,逐项比较法、迭代法】,知识拓展:归并排序与链表,归并排序的基本概念、基本步骤、代码实现以及归并排序的优缺点。 合并两个有序链表:将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 阅读详情

输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。

示例1:

输入:1->2->4, 1->3->4
输出:1->1->2->3->4->4
限制:

0 <= 链表长度 <= 1000

题解

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None

class Solution:
    def mergeTwoLists(self, l1: ListNode, l2: ListNode) -> ListNode:
        if not l1:
            return l2
        if not l2:
            return l1

        if l1.val < l2.val:
            sub_head = self.mergeTwoLists(l1.next, l2)
            l1.next = sub_head
            return l1
        else:
            sub_head = self.mergeTwoLists(l1, l2.next)
            l2.next = sub_head
            return l2
        return sub_head
【算法-链表-python】合并两个有序链表 💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨。 阅读详情

相关推荐

Windows下TensorRT+YOLOv11部署避坑指南:从CUDA配置到模型加密全流程

本文详细解析了在Windows平台部署YOLOv11与TensorRT的全流程,重点涵盖从CUDA环境配置、工程编译适配到模型加密保护的实战指南。基于wang-xinyu的tensorrtx仓库,提供了详细的版本选择、编译问题修复方案,并深入探讨了如何对TensorRT引擎进行加密,以实现高效且安全的端到端部署。

vscode5coder的博客 450

Lab-3-P1-递归

如果有多于一个盘子,先将除最下面的盘子以外的n – 1个盘子从A移动到B,即调用Hanoi()函数,这时参数顺序为n-1,A,B,C,意思是把n-1个盘子借助柱子C从A移动到B上。第三步(即else程序块的第三行)是将除最下面的盘子以外的n – 1个盘子从B(现在已经在B上面了)移动到C,即调用Hanoi()函数,这时参数顺序为n-1,B,C,A,意思是把n-1个盘子借助柱子A从B移动到C上。例如:merge([1,4,5], [3,7])会返回[1,3,4,5,7];

revolutionordied的博客 2103

高通410刷OpenWRT后网络共享配置全攻略

本文详细解析了在高通410设备刷入OpenWRT后,因基带文件丢失导致无法上网的常见问题。核心解决方案是通过SMB网络共享,将备份的原厂基带文件传输至OpenWRT系统并正确还原,从而恢复移动网络连接。文章提供了从备份基带、刷机到配置共享和文件替换的完整操作指南。

grafana6viz的博客 572

合并链表两个排序链表(Python)

题目:输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。 示例: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4 思路:设定一个合并后链表的当前所遍历的节点cur。cur初始值为None,然后从给定链表的头节 点开始判断:当链表1的头节点比链表2的头节点大时,cur连接小的那个,显然就是链表2的 头节点,也就是cur.next=l2,连接完之后...

cuilllinn的博客 1829

32位ALU设计(verilog实现)

32位ALU设计 ​ 算术逻辑单元(arithmetic and logic unit) 是能实现多组算术运算和逻辑运算的组合逻辑电路,简称ALU。算术逻辑单元是中央处理器(CPU)的执行单元,是所有中央处理器的核心组成部分,由"And Gate"(与门) 和"Or Gate"(或门)构成的算术逻辑单元,主要功能是进行二位元的算术运算,如加减乘(不包括整数除法)。基本上,在所有现代CPU体系结构中,二进制都以补码的形式来表示。 设计思路 设计实现 仿真测试 文章目录32位ALU设计一、设计

Destiny的博客 4万+

新手避坑指南:手把手教你从零编写DC综合的.synopsys_dc.setup配置文件

本文详细介绍了如何从零开始编写DC综合的.synopsys_dc.setup配置文件,帮助新手避开常见误区。内容涵盖工艺库路径设置、核心参数详解、实用调试技巧以及高效配置模板,特别强调了配置文件在数字IC设计流程中的重要性。通过实战案例和常见报错解决方案,读者可以快速掌握DC综合配置的关键技能。

weixin_30517215的博客 296

算法

递归算法 递归是非常重要的计算思维,基本原理就是将一个问题分解为同类的小问题。递归思想是基础计算机算法,分治思想,贪心算法,动态规划算法都是基于递归思想。 1.1欧几里得算法 用于求两个整数的最大公约数,又称辗转相除法。基本原理如下:两个正整数的最大公约数等于其中较小的数与两个数之差的最大公约数,基于此,其可以转化成求这两个数中较小的数和两数相除的余数的最大公约数,直至其余数变为0,这时最大公约数就是其中较小的那个数。 1.2斐波那契数列 著名的兔子繁衍问题:如果一对兔子每月能.

weixin_62063501的博客 687

若依框架整合Flowable:从零构建企业级流程中心

本文详细介绍了如何将若依框架与Flowable工作流引擎整合,构建企业级流程中心。通过环境配置、依赖添加、数据库设置等核心步骤,实现流程定义管理、任务处理服务等关键功能,并结合实际案例展示请假审批流程的实现与动态表单集成。文章还提供了性能优化和生产建议,帮助开发者高效构建稳定可靠的工作流系统。

weixin_28365523的博客 230

python周末列表的表示形式合并_Python 列表合并题

完成 merge(L1, L2) 函数:输入参数是两个从小到大排序好的整数列表 L1 和 L2,返回合成后的从小到大排序好的大列表 X例如 merge([1,4,5], [2, 7, 11]) 会返回 [1,2,4,5,7]; merge([], [2,3,4]) 会返回 [2,3,4][1, 5, 7, 9], [2,4,6]要求:(1) 程序中比较两个元素大小的次数不能超过 len(L1) +...

weixin_39756895的博客 815

Ai数字人直播系统搭建,本地源码部署,源码交付--支持OEM系统贴牌

AI 数字人直播系统是利用人工智能技术创建虚拟主播,并通过数字化技术实现直播互动的系统1。以下是其相关介绍:Ai数字人直播系统搭建,本地源码部署,源码交付--支持OEM系统贴牌。

weixin_ggwwsscc的博客 621

华为OD机试双机位C卷-几何平均值最大子数组(Py/Java/C/C++/Js/Go)

华为OD机试(机考)2026双机位C卷 【几何平均值最大子数组】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【几何平均值最大子数组】。

qq_45776114的博客 1367

leetcode题---------合并K个有序链表

方法一:最容易想到的,就是暴力解法 先遍历所有的链表,将所有的结点的值放到一个列表中。 再将这个列表排序。 再把列表里的值重新构建成一个链表 class ListNode(object): def __init__(self, x): self.val = x self.next = None def generateList(l: l...

ZJE 387

YOLOv11 改进 - 注意力机制 | LS-YOLO MSFE 多尺度特征提取模块:并行分支结构增强多尺度感知,优化遥感与小目标检测

本文介绍了一种用于滑坡检测的模型LS-YOLO及其在YOLOv11中的结合应用。LS-YOLO首先构建多尺度滑坡数据集MSLD,为模型训练提供丰富数据。设计了基于高效通道注意力、平均池化和空间可分离卷积的多尺度特征提取模块MSFE,充分提取滑坡特征信息。在解耦头中采用膨胀卷积增加模型感受野。我们将MSFE模块集成进YOLOv11,替换部分原有模块。实验表明,改进后的YOLOv11在数据集中表现出色 。

魔改工程师的博客 870

排序链表 #python解法

题目:给你链表的头结点head,请将其按排列并返回。

weixin_54113539的博客 381

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

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

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

LeetCode 21 合并两个有序链表

# Definition for singly-linked list. # class ListNode: # def __init__(self, val=0, next=None): # self.val = val # self.next = next class Solution: def mergeTwoLists(self, list1: Optional[ListNode], list2: Optional[ListNode]) -> .

hewesH的博客 449

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

题目地址(148. 排序链表)

题目地址(148. 排序链表) https://leetcode-cn.com/problems/sort-list/ 题目描述 给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。 示例 1: 输入:head = [4,2,1,3] 输出:[1,2,3,4] 示例 2: 输入:head = [-1,5,3,4,0] 输出:[-1,0,3,4,5] 示例 3: 输入:head = [] 输出:[] 提示: 链表中节点的数目在范围 [0, 5 * 104

y1040468929的博客 194

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

leetcode 21. Merge Two Sorted Lists(python)

leetcode 1854. Maximum Population Year(python) 描述 You are given a 2D integer array logs where each logs[i] = [birthi, deathi] indicates the birth and death years of the ith person. The population of some year x is the number of people alive during that ye

王大呀呀的博客 474

LeetCode148:链表排序终极解法

摘要:LeetCode 148题要求对链表进行升序排序。Python解法提供两种方法:1)将链表值存入数组排序后重构链表(时间复杂度O(n log n),空间O(n));2)更优的归并排序+递归分治:通过快慢指针找中点分割链表,递归排序子链表后合并。Java和C++解法同样采用归并排序,关键步骤包括快慢指针定位中点、递归分治及双指针合并有序链表。所有解法均需注意链表断开和虚拟头节点的使用,确保时间复杂度为O(n log n),空间O(log n)(递归栈)。C++版本利用三目运算符简化合并收尾操作。

2602_95354978的博客 286

leetcode 21 Merge Two Sorted Lists

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.   我的解决方案:   /** * Definition for singly-linked list.

shiter编写程序的艺术 2957

【leetcode】合并两个有序链表

【leetcode】合并两个有序链表 问题描述: 解法一 临时头结点的使用(复习)。 同步比较两个链表的头的大小,进行新链表的构建。 class Solution: def mergeTwoLists(self, l1: ListNode, l2: ListNode) -> ListNode: res = ListNode(None) node = r...

qq_42803942的博客 204

LeetCode 刷题记录 23. Merge k Sorted Lists

题目: Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity. Example: Input: [ 1->4->5, 1->3->4, 2->6 ] Output: 1->1->2->3->4->4...

dldldl1994的博客 185

Leetcode21 第二十一题

Leetcode21 第二十一题 解题思路: 这道题目比较简单,因为都是有序的,所以直接双指针直接遍历就可以了。但是还有难一点的递归算法去解,累了,下班了,明天再更新。 # Definition for singly-linked list. # class ListNode: # def __init__(self, val=0, next=None): # self.val = val # self.next = next class Solution

qq_41975855的博客 112

【LeetCode】21. Merge Two Sorted Lists

我的个人微信公众号:Microstrong 微信公众号ID:MicrostrongAI 微信公众号介绍:Microstrong(小强)同学主要研究机器学习、深度学习、计算机视觉、智能对话系统相关内容,分享在学习过程中的读书笔记!期待您的关注,欢迎一起学习交流进步! 知乎主页:https://www.zhihu.com/people/MicrostrongAI/activities Github:https://github.com/Microstrong0305 个人博客:https://blo.

Microstrong 643

Leetcode21. Merge Two Sorted Lists

Leetcode21. Merge Two Sorted Lists 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-&gt...

magic_jiayu的博客 218

Python算法题集_合并两个有序链表

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

长孤秋落的札记 1772
上一篇: python 合并排序的数组
下一篇: python 有效的字母异位词
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一叶知秋的BLOG

创作不易 请多多关注

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值