博客
关于我
力扣简单-链表3-21. 合并两个有序链表
阅读量:760 次
发布时间:2019-03-22

本文共 794 字,大约阅读时间需要 2 分钟。

要合并两个升序链表为一个新的升序链表,可以使用递归的方法。递归函数比较当前两个链表的头节点,选择较小的节点作为结果的下一个节点,并继续递归合并剩下的链表。这样可以确保合并后的链表仍然保持升序。

递归合并方法

  • 比较头节点:如果l1为空,直接返回l2;如果l2为空,直接返回l1。
  • 选择较小的节点:比较l1.val和l2.val,选择较小的节点作为结果的当前节点。
  • 递归合并:将当前选择的节点的下一个节点和未处理的链表递归合并。
  • 连接节点:将递归返回的新链表连接到当前节点后面。
  • 代码实现

    class Solution:
    def mergeTwoLists(self, l1: ListNode, l2: ListNode) -> ListNode:
    if l1 is None:
    return l2
    elif l2 is None:
    return l1
    elif l1.val < l2.val:
    l1.next = self.mergeTwoLists(l1.next, l2)
    return l1
    else:
    l2.next = self.mergeTwoLists(l1, l2.next)
    return l2

    代码解释

  • 递归终止条件:当其中一个链表为空时,直接返回另一个链表。
  • 比较节点值:比较l1和l2的当前节点值,决定下一步操作。
  • 递归调用:根据比较结果,调用递归函数继续处理下一个节点。
  • 连接结果:将递归返回的新链表连接到当前节点,形成最终的合并链表。
  • 这种方法的时间复杂度为O(n + m),其中n和m分别是两个链表的长度,确保合并后的链表仍然是升序排列的。

    转载地址:http://qeuwk.baihongyu.com/

    你可能感兴趣的文章
    MySQL添加用户、删除用户与授权
    查看>>
    mysql添加用户及权限
    查看>>
    Mysql添加用户并授予只能查询权限
    查看>>
    mysql添加用户权限报1064 - You have an error in your SQL syntax问题解决
    查看>>
    mysql添加索引
    查看>>
    mysql添加表注释、字段注释、查看与修改注释
    查看>>
    mysql清理undo线程_MySQL后台线程的清理工作
    查看>>
    mysql清空带外键的表
    查看>>
    MySQL清空表数据
    查看>>
    mysql源码安装
    查看>>
    Mysql源码安装过程中可能碰到的问题
    查看>>
    MySQL灵魂16问,你能撑到第几问?
    查看>>
    MySQL灵魂拷问:36题带你面试通关
    查看>>
    mysql状态分析之show global status
    查看>>
    mysql状态查看 QPS/TPS/缓存命中率查看
    查看>>
    mysql生成树形数据_mysql 实现树形的遍历
    查看>>
    mysql用于检索的关键字_Mysql全文搜索match...against的用法
    查看>>
    MySQL用得好好的,为什么要转ES?
    查看>>
    MySql用户以及权限的管理。
    查看>>
    MySQL用户权限配置:精细控制和远程访问的艺术!------文章最后有惊喜哦。
    查看>>