【LeetCode】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 中下标为 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;
}


 

PCL RANSAC拟合分割圆柱体模型【2026最新版】 使用RANSAC拟合分割圆柱的原理介绍、官网示例代码实现以及一个可视化拟合出来的圆柱的具体应用案例。博客长期更新,最近一次更新时间为:2026年1月28日。 阅读详情

相关推荐

SAP-FICO LSMW实战:批量导入财务凭证与固定资产主数据(AS91)的完整指南

本文详细介绍了SAP-FICO中LSMW工具在批量导入财务凭证与固定资产主数据(AS91)的完整流程与实战技巧。从基础概念、环境准备到财务凭证导入全流程,特别针对AS91历史资产导入的日期逻辑和关键字段映射提供了专项指南,并分享了常见错误排查与性能优化建议,帮助用户高效完成SAP数据迁移任务。

weixin_29230649的博客 505

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

WIFi 开关控制实现-ESP8266 物联网 android studio arduino QT多线程服务器

简介:本例子分硬件和软件两大部分, 软件又分3小部分:1 ESP8266 Arduino 嵌入部分 2 手机APP android studio 3 QT 上位机服务器程序。 总之就是一整套。有些代码会有简单备注说明,非科班出身,写这些代码纯属娱乐,写得很不好,多多包涵。 目的: 手机、被控继电器模块连接家里路由器,通过手机App控制继电器的开与断,可设置三种定时模式,即延时开、工作时间、关闭延时。可以控制单一继电器通断或者同时通断。例如,根据配置,可以控制热水器(双刀控制,主要怕漏电)...

qinyaquan1987的博客 4001

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

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

Panbk的博客 377

YOLO26科研升级:OREPA在线重参数化,让模型精度在训练中持续跃升

在目录下,新建AddModules文件夹,将orepa.py放入其中。

LXY_LOVE36的博客 98

RT-DETR改进策略【Neck】| GFPN 超越BiFPN 通过跳层连接和跨尺度连接改进RT-DETR颈部网络

本文记录的是利用颈部结构优化RT-DETR的目标检测网络模型。利用改进后的颈部网络,通过跳层连接,避免了在进行反向传播时的梯度消失问题,并且引入跨尺度连接,可以实现不同级别和层次的特征充分融合,获取足够的高层语义信息和低层空间信息交换,从而在大规模变化场景下提高检测性能。GIRAFFEDET: A HEAVY-NECK PARADIGM FOR OBJECT DETECTION-GFPN包含了上述的跳层连接(dense-link和log2nlog _{2} nlog2​n-link)以及跨尺度连接(Quee

Limiiiing的博客 2228

链表题目:合并两个链表

文章目录题目标题和出处难度题目描述要求示例数据范围解法思路和算法代码复杂度分析 题目 标题和出处 标题:合并两个链表 出处: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

[Research Tips] 我的zotero文献管理方案: 云端同步+iPad批注+overleaf笔记

文献管理一直是一个很头疼的事. 最初直接在paper上做笔记, 后来尝试各种各样的文献管理软件, 比如endnote, mendeley等, 再后来直接用excel. 每一种方案都不是很满意. 最近尝试了各种软件, 摸索出一个合适自己的文献管理方案, 分享给大家. 我的需求: 支持PDF内全文搜索. 支持笔记搜索. 支持同步 可以批注PDF. 支持word内引用 支持Tex笔记语法 支持标签化管理 目前的方案除了第二个需求, 其他的都支持. 就目前我的经验来说, 除了知网研学可以搜索笔记外, 其他软件都

落日之城 5316

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

Claude Code(8):使用 skill-creator 打造属于测试人员的 Skills

本文介绍了如何使用Claude Code的skill-creator工具快速创建测试相关的Skills。skill-creator是一个专门用于创建新Skills的Skill,相比手动创建更高效。文章详细演示了安装skill-creator的步骤,并通过创建"测试计划编写助手"的实战案例,展示了如何通过对话方式定义Skill名称、触发条件和功能需求。skill-creator会自动生成完整的SKILL.md文件和目录结构,用户只需确认即可完成Skill创建。

blues_C的博客 525

YOLO系列算法改进 | C2PSA改进篇 | 融合FSD频域结构解耦模块 | 双域解耦感知,兼顾全局亮度与局部纹理,适应红外小目标与边缘部署场景 | ICME 2026

YOLO系列算法改进 | C2PSA改进篇 | 融合FSD频域结构解耦模块 | 双域解耦感知,兼顾全局亮度与局部纹理,适应红外小目标与边缘部署场景 | ICME 2026 (以YOLO26最新目标检测模型为基础,利用C2PSA_FSD创新模块进行改进)

2502_91881744的博客 315

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

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

lucky_1314520的博客 448

VB摄像头监控

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

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

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

[链表]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

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

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

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-1669 合并两个链表

输入:list1 = [0,1,2,3,4,5], a = 3, b = 4, list2 = [1000000,1000001,1000002]解释:我们删除 list1 中下标为 3 和 4 的两个节点,并将 list2 接在该位置。上图中蓝色的边和节点为答案链表。输出:[0,1,2,1000000,1000001,1000002,5],它们包含的元素分别为。之后的那个节点,将其分别与。的全部节点都删除,并将。接在被删除节点的位置。

juggle_gap_horse的博客 152
上一篇: [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、付费专栏及课程。

余额充值