算法刷题打卡第75天:合并两个链表

news2024/11/15 5:52:42

合并两个链表

难度:中等

给你两个链表 list1list2 ,它们包含的元素分别为 n 个和 m 个。

请你将 list1 中下标从 ab 的全部节点都删除,并将 list2 接在被删除节点的位置。

下图中蓝色边和节点展示了操作后的结果:

请添加图片描述
请你返回结果链表的头指针。

示例 1:

请添加图片描述

输入:list1 = [0,1,2,3,4,5], a = 3, b = 4, list2 = [1000000,1000001,1000002]
输出:[0,1,2,1000000,1000001,1000002,5]
解释:我们删除 list1 中下标为 3 和 4 的两个节点,并将 list2 接在该位置。上图中蓝色的边和节点为答案链表。

示例 2:

请添加图片描述

输入:list1 = [0,1,2,3,4,5,6], a = 2, b = 5, list2 = [1000000,1000001,1000002,1000003,1000004]
输出:[0,1,1000000,1000001,1000002,1000003,1000004,6]
解释:上图中蓝色的边和节点为答案链表。

模拟

思路:
题目要求将 list 1 \textit{list}_1 list1 的第 a a a b b b 个节点都删除,将其替换为 list 2 \textit{list}_2 list2。因此,我们首先找到 list 1 \textit{list}_1 list1 中第 a − 1 a - 1 a1 个节点,以及第 b + 1 b + 1 b+1 个节点。由于 1 ≤ a ≤ b < n − 1 1 \le a \le b \lt n - 1 1ab<n1(其中 n n n list 1 \textit{list}_1 list1 的长度),所以 a − 1 a-1 a1 个节点和 b + 1 b+1 b+1 个节点是一点存在的。

然后我们让第 a − 1 a-1 a1 个节点的 next \textit{next} next 指向 list 2 \textit{list}_2 list2 的头节点,再让 l i s t 2 list2 list2 的尾节点的 next \textit{next} next 指向第 b + 1 b+1 b+1 个节点即可。

复杂度分析:

  • 时间复杂度: O ( n + m ) O(n + m) O(n+m),其中 n n n list 1 \textit{list}_1 list1 的长度, m m m list 2 \textit{list}_2 list2 的长度。
  • 空间复杂度: O ( 1 ) O(1) O(1)
class Solution:
    def mergeInBetween(self, list1: ListNode, a: int, b: int, list2: ListNode) -> ListNode:
        list3 = list1
        for i in range(a - 1):
            list1 = list1.next
        list4 = list1
        for i in range(b - a + 2):
            list4 = list4.next
        list1.next = list2 
        while list2.next:
            list2 = list2.next
        list2.next = list4
        return list3

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/merge-in-between-linked-lists

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

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

相关文章

php debug yasd手记

yasd 调试器 v0.2.5 版本发布&#xff0c;支持 PHP8 以及在 IDE 中使用调试 - 知乎 GitHub - swoole/yasd: Yet Another Swoole Debugger 安装 yasd 在编译安装之前你需要安装boost库。 macOS&#xff1a; brew install boostUbuntu&#xff1a; apt-get install libboos…

Python编程 装饰器

作者简介&#xff1a;一名在校计算机学生、每天分享Python的学习经验、和学习笔记。 座右铭&#xff1a;低头赶路&#xff0c;敬事如仪 个人主页&#xff1a;b网络豆的主页​​​​​​ 目录 前言 一.函数 1.装饰器引入 &#xff08;1&#xff09;时间模块 封装函数&am…

软件测试简历没有邀约,为什么?8类细节通通告诉你(附赠高薪简历)

求职不顺&#xff0c;没有邀约&#xff0c;大概率是你的简历出现了问题。本篇文章列出高薪简历应该注意的细节&#xff0c;合计36处&#xff0c;涉及简历的八大组成部分。现在就讲。一、简历样式要求&#xff08;3点要求&#xff09;1、简历格式&#xff0c;推荐使用PDF格式的简…

shopee、lazada跨境电商产品定位和快速获取流量来源是什么?

曹哥首先说的是产品的定位的思路 当确定好具体的经营类目后&#xff0c;就需要去给店铺的商品进行架构分类&#xff0c;一般分为3类&#xff0c;分为爆款&#xff0c;引流款&#xff0c;利润款 关于爆款主要指那些流量高&#xff0c;转化率高&#xff0c;销量高&#xff0c;但…

51单片机学习笔记-9蜂鸣器

9 蜂鸣器 [toc] 注&#xff1a;笔记主要参考B站江科大自化协教学视频“51单片机入门教程-2020版 程序全程纯手打 从零开始入门”。 注&#xff1a;工程及代码文件放在了本人的Github仓库。 9.1 蜂鸣器简介 蜂鸣器 是一种将电信号转换为声音信号的器件&#xff0c;常用来产生…

Hystrix工作步骤说明以及服务监控hystrixDashboard

目录 一、步骤说明和流程解析 二、服务监控hystrixDashboard 官网&#xff1a;How it Works Netflix/Hystrix Wiki GitHub 一、步骤说明和流程解析 1 创建 HystrixCommand&#xff08;用在依赖的服务返回单个操作结果的时候&#xff09; 或 HystrixObserableCommand&am…

threadLocal的分享

问题描述&#xff1a;1、书城首页的书明明是广告解锁的&#xff0c;但是没有free标识&#xff0c;经过多次接口请求得出结论&#xff0c;相同的请求参数&#xff0c;有时会展示出free标识&#xff0c;有时不会展示free标识问题分析&#xff1a;1、长时间分析也没有得出结论&…

Linux用户及用户组知识总结

✅作者简介&#xff1a;热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏&#xff1a;Java案例分…

SAP 供应商创建默认字段(屏幕格式)后台配置总结

供应商创建默认字段&#xff08;屏幕格式&#xff09;后台配置总结 供应商创建时默认字段&#xff08;屏幕格式的配置在好几个地方的配置来控制。 一 、定义与采购组织特定的屏幕格式 &#xff08;事务代码&#xff1a; OMFK&#xff09; IMG路径为如下图&#xff1a; 在这里…

commons-beanutils的三种利用原理构造与POC

写在前面 commons-beanutils 是 Apache 提供的一个用于操作 JAVA bean 的工具包。里面提供了各种各样的工具类&#xff0c;让我们可以很方便的对bean对象的属性进行各种操作。其中比较常使用的有 MethodUtils/ConstructorUtils/PropertyUtils/BeanUtils/ConvertUtils等。 分析…

Python-文件、eval函数

1.文件的概念和作用1.1文件的概念和作用计算机的文件&#xff0c;就是存储在某种长期储存设备上的一段数据长期存储设备包括&#xff1a;硬盘、U盘、移动硬盘、光盘......文件的作用将数据长期保存下来&#xff0c;在需要的时候使用CPU内存 硬盘1.2文件的存储方式在计算机中&am…

机器视觉_HALCON_HDevelop用户指南_3.用HDevelop采集图像

文章目录三、用HDevelop采集/获取图像3.1. 从文件中读取图像3.2. 查看图像3.3. 图像采集助手3.3.1. 从文件或文件夹中获取图像3.3.2. 通过图像获取接口获取图像3.3.3. 修改生成的代码三、用HDevelop采集/获取图像 本章节标题的英文是Image Acquisition&#xff0c;直译是图像采…

微信小程序跳转页面三种方式

wx.navigateTo 保留当前页面&#xff0c;跳转到应用内的某个页面。但是不能跳到 tabbar 页面。使用 wx.navigateBack 可以返回到原页面。小程序中页面栈最多十层。 wx.navigateBack 关闭当前页面&#xff0c;返回上一页面或多级页面。可通过 getCurrentPages 获取当前的页面…

搜索入门技能树

搜索地址 以下哪个网址不能用来搜索&#xff1a; https://so.csdn.net/so/searchhttps://so.csdn.net/waphttps://devbit.csdn.net/searchhttps://dev.csdn.net/ 搜索频道 以下哪个不属于搜索频道&#xff1a; 全站博客下载图片 技能树 在搜索结果页展示的技能树模块中&am…

51单片机学习笔记-2数码管显示

2 数码管显示 [toc] 注&#xff1a;笔记主要参考B站江科大自化协教学视频“51单片机入门教程-2020版 程序全程纯手打 从零开始入门”。 注&#xff1a;工程及代码文件放在了本人的Github仓库。 2.1 静态数码管显示 2.1.1 原理介绍   LED数码管&#xff1a;数码管是一种简单…

办公技巧:分享7个非常实用的PPT技巧

❤️作者主页&#xff1a;IT技术分享社区 ❤️作者简介&#xff1a;大家好,我是IT技术分享社区的博主&#xff0c;从事C#、Java开发九年&#xff0c;对数据库、C#、Java、前端、运维、电脑技巧等经验丰富。 ❤️荣誉&#xff1a; CSDN博客专家、数据库优质创作者&#x1f3c6;&…

分享14个你可能还未用上但又实用的CSS属性

大家好&#xff0c;今天分享 14 个实用的CSS属性&#xff0c;你可能还未用上&#xff0c;这些 CSS 属性将帮助你提高开发的效率&#xff0c;本篇文章将介绍上半部分&#xff0c;废话不多说&#xff0c;我们快来了解下吧。一、:in-range 和 :out-of-range 伪类:in-range 和 :out…

域内权限维持:DSRM后门

01、简介 每个域控制器都有一个目录还原模式(DSRM)帐户&#xff0c;它的密码是在安装域控时设置的&#xff0c;实际上它对应的就是sam文件里的本地管理员“administrator”&#xff0c;基本很少会被重置&#xff0c;因此有着极强的隐蔽性。攻击者通过获取域控的DSRM密码&#x…

分布式事务| 使用 dotnetcore/CAP 的本地消息表模式

本地消息表模式本地消息表模式&#xff0c;其作为柔性事务的一种&#xff0c;核心是将一个分布式事务拆分为多个本地事务&#xff0c;事务之间通过事件消息衔接&#xff0c;事件消息和上个事务共用一个本地事务存储到本地消息表&#xff0c;再通过定时任务轮询本地消息表进行消…

运放电路中输入失调电压Vos及温漂-运算放大器

实际运放与理想运放具有很多差别&#xff0c;要理解这些差别&#xff0c;就必须认识实际运放的参数。下图是用于描述实际运放几个关键参数的等效模型。模型中&#xff0c;第一个黄色运放是一个近似的理想运放&#xff0c;只有Auo不是无穷大&#xff0c;其余都是理想的。第二个运…