【LeetCode】1669. 合并两个链表

Arduino——GY39大气压、温湿度、光照模块 前几天买东西的时候买了一个GY39,这个模块集成了温湿度,大气压,海拔,光照一体,使用起来很方面。它有两种工作模式使用串口模式时需要搭配转接板,我选择了IIC模式,看一下通信协议吧,就是关于高八位和低八位的数据。看一下接线。 阅读详情

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

请你将 list1 中下标从 a 到 b 的全部节点都删除,并将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]
解释:上图中蓝色的边和节点为答案链表。

提示:

  • 3 <= list1.length <= 104
  • 1 <= a <= b < list1.length - 1
  • 1 <= list2.length <= 104

思路:遍历查找,链接。

这里我有一个疑问,为什么我在while中使用break,反而更耗时了!在while循环中使用break,我内存节省了很多,按道理我时间也会节省不少啊,为什么消耗更多的时间。

这是用break:

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     struct ListNode *next;
 * };
 */


struct ListNode* mergeInBetween(struct ListNode* list1, int a, int b, struct ListNode* list2){
    struct ListNode* pre = (struct ListNode*)malloc(sizeof(struct ListNode));//记录a前位置
    struct ListNode* post = (struct ListNode*)malloc(sizeof(struct ListNode));//记录b后位置
    struct ListNode* i = (struct ListNode*)malloc(sizeof(struct ListNode));//循环使用
    pre = post = i = list1;
    int n = 0;//下标
    while(i){
        if(++n==a) pre = i; 
        i = i->next;
        if(n==b) {
            post = i->next;
            break;
        }
    }
    pre->next = list2;//这里直接将list2链入
    while(pre->next){
        pre = pre->next;//找list2最后一个元素
    }
    pre->next = post;//链接
    return list1;
}

这是不用break:

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     struct ListNode *next;
 * };
 */


struct ListNode* mergeInBetween(struct ListNode* list1, int a, int b, struct ListNode* list2){
    struct ListNode* pre = (struct ListNode*)malloc(sizeof(struct ListNode));
    struct ListNode* post = (struct ListNode*)malloc(sizeof(struct ListNode));
    struct ListNode* i = (struct ListNode*)malloc(sizeof(struct ListNode));
    pre = post = i = list1;
    int n = 0;
    while(i){
        if(++n==a) pre = i; 
        i = i->next;
        if(n==b) post = i->next;
    }
    pre->next = list2;
    while(pre->next){
        pre = pre->next;
    }
    pre->next = post;
    return list1;
}


 

开源PACS系统Orthanc(DICOM服务器)配置 PACS(Picture Archiving and Communication System)是医学影像的数字化存储、检索和传输系统,用于管理和存储医学图像和相关信息,如放射学、核医学、超声、病理学等各种医学影像。PACS系统通过数字化技术取代了传统的胶片方式,使医疗机构能够更高效地存储、传输和查看医学图像,从而提高了医疗图像的管理和工作流程。 阅读详情

相关推荐

一文搞懂STM32定时器翻转模式(产生多路频率、占空比的PWM)

(产生多路频率、占空比的PWM)

weixin_56688599的博客 7935

leetcode之链表十三: 1669-合并两个链表

原题:https://leetcode-cn.com/problems/merge-in-between-linked-lists/ 一、题目要求 给你两个链表list1和list2,它们包含的元素分别为n个和m个。 请你将list1中第a个节点到第b个节点删除,并将list2接在被删除节点的位置。 下图中蓝色边和节点展示了操作后的结果: 请你返回结果链表的头指针。 示例 1: 输入:list1 = [0,1,2,3,4,5], a = 3, b = ...

infi 384

Anomalib实战:从零开始构建自定义数据集的异常检测模型

本文详细介绍了如何使用Anomalib 2.1.0从零开始构建自定义数据集的异常检测模型。通过实战演示,指导读者准备符合规范的数据集结构,快速上手训练Patchcore等先进算法,并完成模型推理与调优,为工业质检、医疗影像等场景提供高效的视觉异常检测解决方案。

weixin_29165465的博客 109

LeetCode 1669. 合并两个链表(C++)

给你两个链表 list1 和 list2 ,它们包含的元素分别为 n 个和 m 个。 请你返回结果链表的头指针。 请你将 list1 中下标从 a 到 b 的全部节点都删除,并将list2 接在被删除节点的位置。

Panbk的博客 377

【技术分享】ArcGIS Pro底图色彩优化实战:从DEM到山体阴影的进阶调色技巧

本文深入探讨了在ArcGIS Pro中优化地形底图色彩的进阶技巧。通过分析DEM与山体阴影的直方图,详细讲解了如何运用图层混合、亮度、对比度及伽马值等核心参数进行精细化调色,从而将灰暗平淡的地图转化为层次分明、视觉美观的专业成果。

5b6n7m8的博客 759

【K8S系列】Kubernetes 中 Pod 无法通过 Service 名称访问服务的 DNS 解析失败问题【已解决】

在 Kubernetes 中,Service 提供了一种稳定的方式,通过名称访问一组 Pod。当其他 Pod 无法通过 Service 名称访问服务,并且出现 DNS 解析失败时,通常会导致应用无法正常工作。本文将详细分析此问题的常见原因及其解决方案。

颜淡慕潇 1万+

链表题目:合并两个链表

文章目录题目标题和出处难度题目描述要求示例数据范围解法思路和算法代码复杂度分析 题目 标题和出处 标题:合并两个链表 出处:1669. 合并两个链表 难度 4 级 题目描述 要求 给你两个链表 list1\texttt{list1}list1 和 list2\texttt{list2}list2,它们包含的元素分别为 n\texttt{n}n 个和 m\texttt{m}m 个。 请你将 list1\texttt{list1}list1 中第 a\texttt{a}a 个结点到第 b\texttt{b}b

stormsunshine的博客 397

Far planner 部署真实小车 & 树莓派部署lego_loam

今天开一贴Far planner的部署,也算是lego loam的部署吧 因为state_estimation用的是lego loam小车底盘: 轮趣的mini差速底盘外加多一层钢板,中间层用来放velodyne的电池(小的电池还没到,大的电池塞不进去目前)和velodyne信号盒子。前面还可以加一个相机。底层用来放小车的电池和马达等设备了,底层不用动。最上面一层用来安装velodyne16线雷达,需要额外钻孔(如果买轮趣的话可以找老板钻个孔?我也不确定,我自己钻的)。 雷达固定螺丝用的是 1/4-20*3

博客 4303

1669. 合并两个链表 给你两个链表 list1 和 list2 ,它们包含的元素分别为 n 个和 m 个。 请你将 list1 中第 a 个节点到第 b 个节点删除,并将list2 接在被删除节

class Solution { public ListNode mergeInBetween(ListNode list1, int a, int b, ListNode list2) { ListNode begin = list1; ListNode end = list1; int i = 0; while(i < a-1){ begin = begin.next; i++

zylscxy的博客 484

YOLOv8【第二章:卷积创新篇·第23节】一文搞懂,Transformer与卷积混合架构!

🏆 本文收录于 《YOLOv8实战:从入门到深度优化》,该专栏持续复现网络上各种热门内容(全网YOLO改进最全最新的专栏,质量分97分+,全网顶流),改进内容支持(分类、检测、分割、追踪、关键点、OBB检测)。且专栏会随订阅人数上升而涨价(毕竟不断更新),当前性价比极高,有一定的参考&学习价值,部分内容会基于现有的国内外顶尖人工智能AIGC等AI大模型技术总结改进而来,嘎嘎硬核。    ✨ 特惠福利:目前活动一折秒杀价!一次订阅,永久免费,所有后续更新内容均免费阅读!

**My Coding Family** 1387

【局部规划模块轨迹优化算法】Teb_planner规划算法

认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!本文先对****做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章提示:以下是本篇文章正文内容由于ROS中的局部路径规划器比较老了,所以我推荐大家使用比较新的局部路径规划器teb_local_planner。teb_local_planner是基于弹性时间带碰撞约束的算法,算法将动态障碍物、运行时效、路径平滑性等约束做综合考虑,在复杂环境下有更优秀的表现。

qq_35635374的博客 951

Leetcode-每日一题【1669.合并两个链表】

给你两个链表 list1 和 list2 ,它们包含的元素分别为 n 个和 m 个。请你将 list1 中下标从 a 到 b 的全部节点都删除,并将list2 接在被删除节点的位置。下图中蓝色边和节点展示了操作后的结果:请你返回结果链表的头指针。我们删除 list1 中下标为 3 和 4 的两个节点,并将 list2 接在该位置。上图中蓝色的边和节点为答案链表。上图中蓝色的边和节点为答案链表。

lucky_1314520的博客 448

在 SAP SD 模块里,销售订单号既可以由系统“自动”产生,也可以由用户“手工”输入,核心取决于“号码段(Number Range)”与“订单类型(Sales Document Type)”这两处配

SAP销售订单编号配置指南:系统提供内部自动编号和外部手工编号两种方式,通过VN01定义号码段(内部/外部),VOV8分配给订单类型并设置"ExtNo.Rq"选项即可切换。高阶应用支持灵活编号(如加前缀)或通过增强出口完全自定义编号规则。配置时需注意号码段创建、分配及传输问题,常见故障包括号码范围不存在或配置错误。核心是"号码段+订单类型"的组合控制编号生成方式,满足从简单到复杂的业务需求。

金牌架构师 531

Leetcode 1669. 合并两个链表

题目链接:Leetcode 1669. 合并两个链表 题意: 给你两个链表list1和list2,它们包含的元素分别为n个和m个。 请你将list1中第a个节点到第b个节点删除,并将list2接在被删除节点的位置。 解题思路: 代码详解 /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * Lis...

error311的博客 491

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

[链表]leetcode1669-合并两个链表

[链表]–合并两个链表 题目链接 leetcode 1669.合并两个链表 题目 给你两个链表 list1 和 list2 ,它们包含的元素分别为 n 个和 m 个。 请你将 list1 中第 a 个节点到第 b 个节点删除,并将list2 接在被删除节点的位置。 示例 输入:list1 = [0,1,2,3,4,5], a = 3, b = 4, list2 = [1000000,1000001,1000002] 输出:[0,1,2,1000000,1000001,1000002,5] 解释:我们删除

weixin_44014218的博客 327

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

leetcode力扣:1669. 合并两个链表

基本思路: 1.从list1的头结点开始向后移动 a - 1 步,定位到 le; 2.从list1的头结点开始向后移动 b +1 步,定位到 ri; 3.把list2填充到le后,填充完毕后接上ri 代码实现: /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * List...

IAMZTDSF的博客 649

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

LeetCode Algorithm 1669. 合并两个链表

题目链接:1669. 合并两个链表

Alex 733

LeetCode 1669. 合并两个链表

problem LeetCode 1669. 合并两个链表 给你两个链表 list1 和 list2 ,它们包含的元素分别为 n 个和 m 个。 请你将 list1 中第 a 个节点到第 b 个节点删除,并将list2 接在被删除节点的位置。 solution 思路过程 p标记要被删除的节点的的后续节点 找到要被删除的开始节点的前续节点,然后指向List2 走到list2的尾节点,并指向p 返回 list1 a的计数是从零开始的吗?还是说节点中数值于a和b相等 做个实验,是从零开始计数删除的节点

erzhushashade的博客 136

【LeetCode每日一题】【2023/1/30】1669. 合并两个链表

方法: 1. 模拟

Wang_Xin_Ling的博客 467

Leetcode.1669 合并两个链表

Leetcode每日一题

感觉画质不如...原神的博客 374

leetcode 1669.合并两个链表

1669.合并两个链表(leetcode刷题——链表篇) 题目描述: 给你两个链表 list1 和 list2 ,它们包含的元素分别为 n 个和 m 个。 请你将 list1 中下标从 a 到 b 的全部节点都删除,并将list2 接在被删除节点的位置。 下图中蓝色边和节点展示了操作后的结果: 请你返回结果链表的头指针。 示例 1: 输入:list1 = [0,1,2,3,4,5], a = 3, b = 4, list2 = [1000000,1000001,1000002] 输出:[0,1,2,1

weixin_46640900的博客 281

LeetCode——1669. 合并两个链表

1669. 合并两个链表

FuckerGod的博客 424

【Leetcode】1669-合并两个链表

合并链表的算法实例

wanlinBee的博客 291

leetcode1669. 合并两个链表

给你两个链表list1 和list2,它们包含的元素分别为n 个和m 个。 请你将list1中第a个节点到第b个节点删除,并将list2接在被删除节点的位置。 下图中蓝色边和节点展示了操作后的结果: 请你返回结果链表的头指针。 示例 1: 输入:list1 = [0,1,2,3,4,5], a = 3, b = 4, list2 = [1000000,1000001,1000002] 输出:[0,1,2,1000000,1000001,1000002,5] 解释:我...

少说,多做。 5363

LeetCode 分类刷题:1669. 合并两个链表

本文探讨了合并两个链表的算法问题。题目要求在链表1中删除a到b位置的节点,并将链表2接入该位置。给出了两种解法:个人解法使用快慢指针分别定位;官方解法更高效,通过先定位再移动指针,避免了额外变量。时间复杂度应为O(n+m),官方解法更规范地以输入规模上限表述复杂度,体现了更优的编程实践。两种方法空间复杂度均为O(1)。该问题展示了链表操作中指针移动和边界处理的技巧,以及算法复杂度分析中规范表述的重要性。

flashlight_hi的博客 485

力扣1669合并两个链表笔记

给你两个链表 list1 和 list2 ,它们包含的元素分别为 n 个和 m 个。请你将 list1 中下标从 a 到 b 的全部节点都删除,并将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 中

qq_61588168的博客 230
上一篇: [LeetCode]2315. 统计星号
下一篇: [LeetCode]2319. 判断矩阵是否是一个 X 矩阵
天皓Oo
博客等级 码龄5年 337粉丝 61原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值