文章目录

  • 1. 题目
  • 2. 解题

1. 题目

给你两个链表 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 中第三和第四个节点,并将 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 <= 10^4
1 <= a <= b < list1.length - 1
1 <= list2.length <= 10^4

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/merge-in-between-linked-lists
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode() : val(0), next(nullptr) {}*     ListNode(int x) : val(x), next(nullptr) {}*     ListNode(int x, ListNode *next) : val(x), next(next) {}* };*/
class Solution {public:ListNode* mergeInBetween(ListNode* list1, int a, int b, ListNode* list2) {ListNode *cur = list1, *cur2 = list1->next;ListNode *tail2 = list2;b -= a;while(tail2->next)tail2 = tail2->next;//链表2的尾节点while(--a){cur = cur->next;}cur2 = cur->next;//要删除的部分的开始cur->next = list2;//接上链表2while(b--)//链表1剩余要删除的部分,遍历{cur2 = cur2->next;}tail2->next = cur2->next;//链表2的尾巴接上要删除的部分的尾巴的下一个return list1;}
};

524 ms 92.7 MB C++


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!

LeetCode 1669. 合并两个链表相关推荐

  1. LeetCode 1669合并两个链表-中等

    给你两个链表 list1 和 list2 ,它们包含的元素分别为 n 个和 m 个. 请你将 list1 中第 a 个节点到第 b 个节点删除,并将list2 接在被删除节点的位置. 下图中蓝色边和节 ...

  2. leetcode刷题记录--数据结构;深度优先搜索算法;二叉树;平衡树;1020. 飞地的数量;1669. 合并两个链表;108. 将有序数组转换为二叉搜索树

    1020. 飞地的数量 难度中等131 给你一个大小为 m x n 的二进制矩阵 grid ,其中 0 表示一个海洋单元格.1 表示一个陆地单元格. 一次 移动 是指从一个陆地单元格走到另一个相邻(上 ...

  3. [递归|迭代] leetcode 21 合并两个有序链表

    [递归|迭代] leetcode 21 合并两个有序链表 1.题目 题目链接 将两个升序链表合并为一个新的升序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1->2 ...

  4. LeetCode 21. 合并两个有序链表(链表)

    上一篇博客:LeetCode 20. 有效的括号(栈.字符串)  写在前面:大家好!我是ACfun,我的昵称来自两个单词Accepted和fun.我是一个热爱ACM的蒟蒻.最近萌生了刷LeetCode ...

  5. 合并两个链表,去掉重复元素

    最近在学习机器学习的相关算法,写到DbScan算法发现在簇扩展时用到两个邻域中的点会重合,于是尝试了合并两个链表的两个算法. 最初用到这个方法,认为它简单易用.思路是定义一个链表存放合并后的链表lis ...

  6. C语言实现合并两个链表 含注释

    本例子实现将两个链表合并,合并后的链表是第一个链表.通过将第二个链表连接到第一个链表的尾部实现.核心思想是:遍历第一个链表直到尾部,记录尾指针,然后将第二个链表连接到第一个链表尾部指针的 next 指 ...

  7. 面试题:交替合并两个链表

    交替合并两个链表给定一个链表 L1: L0->L1->L2->L3->L4....Ln 给定一个链表 L2: Lm->Lm+1->L....LM+n 例如输入链表1 ...

  8. LeetCode 21合并两个有序链表22括号生成

    微信搜索bigsai,回复进群,加入打卡.维护不易,欢迎点赞支持! 合并两个有序列表 将两个升序链表合并为一个新的 升序 链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1 ...

  9. LeetCode 21. 合并两个有序链表(单链表)

    文章目录 1. 题目信息 2. 解题 1. 题目信息 将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例:输入:1->2->4, 1-> ...

最新文章

  1. CentOS 7 yum 安装 MySQL5.7
  2. 2021全国大学生物联网大赛记
  3. 推荐系统炼丹笔记:Deep Retrieval
  4. mysql case函数吗_mySQL case函数
  5. 28. LAST() 函数
  6. 使用函数BAPISDORDER_GETDETAILEDLIST读取S/4HANA中Sales Order行项目数据
  7. WINCE BSP中source文件中的宏定义
  8. Magento教程 16:Magento价格规则的优先度
  9. arduino 舵机接线图_用fritzing绘制arduino硬件连线图
  10. 批量激活管理工具VAMT 3.0的安装与基本使用方法简介
  11. ajax无刷新提交表,Ajax无刷新提交表单和显示
  12. [读码时间] 跟随鼠标移动(大图展示)
  13. php提交form表单提交方式,php form表单的提交
  14. 智鹰科技——无人机线路巡检系统商业计划书
  15. 2018 年寒假/春节,来蓝鲸玩吧!
  16. 2020年度总结和一些想法
  17. 信号完整性和电源完整性基本介绍
  18. Playwright 中文文档
  19. 张艾迪(创始人):梦想与未来
  20. 学习日语应该先掌握哪些内容?

热门文章

  1. webpack打开项目命令_webpack打包好的页面在项目中怎么运行?
  2. 在Linux中head命令,Linux 中 head 命令实例
  3. All-In-One Code Framework [一站式示例代码库] 【转】
  4. luogu3830 [SHOI2012]随机树
  5. Go语言之进阶篇http服务器获取客户端的一些信息
  6. Tomcat 在mac上(Idea)端口冲突解决办法
  7. BZOJ4068 : [Ctsc2015]app
  8. [解题报告]HDU 1249 三角形
  9. hibernate3.6.0日志配置
  10. Java代码优化方案 J2ME内存优化