21. 合并两个有序链表、Leetcode的Python实现

news2024/12/24 22:09:27

  博客主页:🏆看看是李XX还是李歘歘 🏆

🌺每天不定期分享一些包括但不限于计算机基础、算法、后端开发相关的知识点,以及职场小菜鸡的生活。🌺

💗点关注不迷路,总有一些📖知识点📖是你想要的💗

⛽️今天的内容是     Leetcode  203. 移除链表元素      ⛽️💻💻💻

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 均按 非递减顺序 排列

递归:

# 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]) -> Optional[ListNode]:
        if list1 is None:
            return list2
        if list2 is None:
            return list1
        if list1.val<list2.val:
            list1.next = self.mergeTwoLists(list1.next,list2)
            return list1
        else:
            list2.next = self.mergeTwoLists(list1,list2.next)
            return list2

迭代:

# 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]) -> Optional[ListNode]:
        result = ListNode
        tmp = result
        while list1 is not None and list2 is not None :
            if list1.val<list2.val :
                tmp.next,list1 = list1,list1.next
            else :
                tmp.next,list2 = list2,list2.next
            tmp = tmp.next
        tmp.next = list1 if list1 else list2
        return result.next

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

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

相关文章

自相矛盾的LLM幻觉:评估、检测、缓解10.30

自相矛盾的LLM幻觉&#xff1a;评估、检测、缓解 摘要引言相关工作定义和激励自我矛盾4 触发、检测和减轻自相矛盾的行为5 实例化到开放文本生成6 实验 摘要 大型语言模型&#xff08;Large LMs&#xff09;容易产生包含虚构内容的文本。其中一个重要问题是自相矛盾&#xff0…

windows server 2016-IIS静态服务器-设置详细过程

文章目录 1.打开仪表盘新建角色2.iis功能模块3.启动服务器4.优点 1.打开仪表盘新建角色 2.iis功能模块 能选上的尽量选上&#xff0c;除非知道自己用不上。 然后确认&#xff0c;下一步&#xff0c;安装。 3.启动服务器 搜索IIS&#xff0c;启动IIS管理器。 启动网站。 右…

【杂记】Filter过滤器和Interceptor拦截器的区别

过滤器Filter与拦截器Interception区别&#xff1f; 包的位置不同。 filter位于tomcat里面&#xff0c;interception位于Spring-webmvc filter位置&#xff1a; interceptor位置&#xff1a; 实现方式不同。在自定义的时候&#xff0c;filter我们可以实现Filter接口&#xf…

精品Python产品销售数据可视化大屏系统-仓库出入库进销存储

《[含文档PPT源码等]精品基于Python的产品销售数据可视化系统的设计与实现》该项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程、包运行成功&#xff01; 软件开发环境及开发工具&#xff1a; 开发语言&#xff1a;python 使用框架&#xff1a;Django …

组学数据上传(六)|GEO数据库数据上传实操

最近有些老师反馈文章发表时要求提供GEO登录号,如:GSEXXXX&#xff0c;问要怎么获取这种登录号?这时就需要把数据上传至GEO数据库了。还在等什么&#xff0c;跟着小编了解下GEO数据库&#xff0c;手把手教您上传数据至GEO数据库。 GEO数据库全称GENE EXPRESSION OMNIBUS&…

北京新一代信息技术产教联合体成立,360以ISC安全课助力建设工作

10月29日&#xff0c;北京新一代信息技术产教联合体&#xff08;简称联合体&#xff09;成立大会在北京360大厦A座报告厅成功举行。本次大会在中关村科技园区朝阳园管理委员会、北京市教委职业教育与成人教育处的指导下&#xff0c;由360数字安全集团、北京电子城高科技集团股份…

产品经理如何写好互联网产品说明书

互联网产品说明书是产品经理在产品开发过程中必不可少的文档之一。它起到了明确产品的功能和特性的作用&#xff0c;帮助团队成员更好地理解和掌握产品的核心功能。因此&#xff0c;作为产品经理&#xff0c;应该重视互联网产品说明书。那么产品经理该如何写好互联网产品说明书…

Mac电脑VS Code配置Flutter开发环境(图文超详细)

一、安装Android Studio 官网地址&#xff1a; https://developer.android.google.cn/ 历史版本下载地址&#xff1a; https://developer.android.com/studio/archive?hlzh-cn 二、安装Xcode 到App Store下载安装最新版本&#xff0c;如果MacOS更新不到13.0以上就无法安装…

【多线程面试题十四】、说一说synchronized的底层实现原理

文章底部有个人公众号&#xff1a;热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享&#xff1f; 踩过的坑没必要让别人在再踩&#xff0c;自己复盘也能加深记忆。利己利人、所谓双赢。 面试官&#xff1a;说一说synchronized的底…

三分钟带你了解JS、原型、原型链

1.什么是JS&#xff1f; JavaScript是一种基于对象的脚本语言&#xff0c;它不仅可以创建对象&#xff0c;也能使用现有的对象&#xff1b; 它是基于原型编程、多范式的动态脚本语言&#xff0c;并且支持面向对象、命令式、声明式、函数式编程范式&#xff1b; 白话一点说就是…

算法的时间复杂度及空间复杂度

目录 一、前言 二、时间复杂度 1.时间复杂度定义 2.时间复杂度描述方法 三、实例代码 实例1&#xff08;取影响最大的项&#xff09; 实例2&#xff08;舍去系数&#xff09; 实例3&#xff08;不确定大小关系的用max函数取最大&#xff09; 实例4&#xff08;常数次的…

【IDEA】每个方法之间如何设置分隔线

修改后效果&#xff1a; 各个方法之间出现了分隔线

大模型LLMs 部分常见面试题答案-基础面

题库来源&#xff1a;GitHub - km1994/LLMs_interview_notes: 该仓库主要记录 大模型&#xff08;LLMs&#xff09; 算法工程师相关的面试题 目录 1. Prefix Decoder、Causal Decoder和Encoder-Decoder的区别 1.1 Prefix Decoder 1.2 Causal Decoder 1.3 Encoder-Decoder …

前端包管理工具详解

一、npm包管理工具 1.代码共享方案 我们已经学习了在JavaScript中可以通过模块化的方式将代码划分成一个个小的结构&#xff1a; 在以后的开发中我们就可以通过模块化的方式来封装自己的代码&#xff0c;并且封装成一个工具&#xff1b;这个工具我们可以让同事通过导入的方式…

【多线程面试题十八】、说一说Java中乐观锁和悲观锁的区别

文章底部有个人公众号&#xff1a;热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享&#xff1f; 踩过的坑没必要让别人在再踩&#xff0c;自己复盘也能加深记忆。利己利人、所谓双赢。 面试官&#xff1a;说一说Java中乐观锁和悲…

单元化架构的思考

银行业“多活”的发展历程 受监管政策的要求&#xff0c;银行一般会在同城、异地或者多地进行数据中心建设&#xff0c;以保证系统的稳定运行&#xff0c;但从目前实际情况来看&#xff0c;“同城双活”目前仍是很多银行采用的主要形式。银行业的“多活”架构在发展过程中存在三…

文件管理怎么清内存?效率提升一倍

定期清理文件管理可以释放存储空间和提高系统性能。随着时间的推移&#xff0c;手机中可能会存储大量无用的数据&#xff0c;例如缓存、垃圾文件等&#xff0c;导致系统运行缓慢。那么如何清理文件管理的内存呢&#xff1f;下面介绍三种方法。 一、搜索无用的文件夹进行清理 1…

钛虎机械臂移植

安装软件 1 安装fcl git clone https://gitee.com/xjEzekiel/fcl.git cd fcl mkdir build cd build cmake .. make sudo make install2 安装octomap sudo apt install ros-melodic-octomap-ros3 其他 sudo apt install ros-melodic-eigen-stl-containers sudo apt install r…

SAP ABAP SALV DEMO

这几天听了翱翔云天的几个分享视频&#xff0c;发现做了这么多年的ABAP&#xff0c;更多的是实现功能&#xff0c;但是在优化和原理层面&#xff0c;还是相当欠缺&#xff0c;虽然在甲方是属于6边形战士的存在&#xff08;ABAP&#xff0c;BASIS&#xff0c;BW&#xff0c;PO&a…

【React】P2 create-react-app基础操作

文章目录 当前以及未来的开发&#xff0c;一定是&#xff1a;组件化开发如何划分组件React的工程化/组件化开发create-react-app基础运用运用react常用版本一个React项目中&#xff0c;默认会安装 2023年最新珠峰React全家桶【react基础-进阶-项目-源码-淘系-面试题】 当前以及…