当前位置:网站首页>2022.07.12 _ a day
2022.07.12 _ a day
2022-07-31 07:40:00 【No. い】
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
- 链表
coding
//leetcode submit region begin(Prohibit modification and deletion)
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * ListNode(int val, ListNode next) { this.val = val; this.next = next; } * } */
class Solution {
public ListNode mergeInBetween1(ListNode list1, int a, int b, ListNode list2) {
ListNode res = list1;
for (int i = 1; i < a; i++) {
list1 = list1.next;
}
// remove <=> 左边界
ListNode remove = list1;
for (int i = 0; i < b - a + 1; i++) {
remove = remove.next;
}
// remove <=> 右边界
// 左边界 -> list2
while (list2 != null) {
list1.next = list2;
list1 = list1.next;
list2 = list2.next;
}
// list2 结束 -> list1 Right part after element is removed
list1.next = remove.next;
return res;
}
public ListNode mergeInBetween2(ListNode list1, int a, int b, ListNode list2) {
ListNode cur = list1;
ListNode left = list1;
ListNode right = list1;
// 记录左右边界
for (int i = 0; cur != null; i++) {
if (a - 1 == i) {
left = cur;
}
if (b + 1 == i) {
right = cur;
}
cur = cur.next;
}
left.next = list2;
while (list2.next != null) {
list2 = list2.next;
}
list2.next = right;
return list1;
}
}
//leetcode submit region end(Prohibit modification and deletion)
边栏推荐
- SQLite数据库连接字符串
- 04-SDRAM: Read Operation (Burst)
- Exam Questions Previous True Questions Wrong Bills [The Fourth Session] [Provincial Competition] [Group B]
- 文件 - 05 下载文件:根据文件Id下载文件
- postgresql源码学习(34)—— 事务日志⑩ - 全页写机制
- 2022.07.18_每日一题
- 2022.07.12_每日一题
- Analysis of the implementation principle and detailed knowledge of v-model syntactic sugar and how to make the components you develop support v-model
- 那些破釜沉舟入局Web3.0的互联网精英都怎么样了?
- Bulk free text translation
猜你喜欢
Obtaining server and client information
LeetCode刷题——摆动序列#376#Medium
剑指offer(一)
【微服务】Nacos集群搭建以及加载文件配置
【第四章】详解Feign的实现原理
Foreign trade website optimization - foreign trade website optimization tutorial - foreign trade website optimization software
文件 - 03 下载文件:根据文件id获取下载链接
tidyverse笔记——dplyr包
HighTec 的安装与配置
2022.07.20_每日一题
随机推荐
Run the NPM will pop up to ask "how are you going to open this file?"
在 ASP.NET Core 应用程序启动时运行代码的 3 种方法
leetcode 406. Queue Reconstruction by Height
把 VS Code 当游戏机
interrupt and pendSV
gstreamer's caps event and new_segment event
文件 - 03 下载文件:根据文件id获取下载链接
Kubernetes scheduling
从 Google 离职,前Go 语言负责人跳槽小公司
Third-party library-store
codec2 BlockPool:unreadable libraries
Zero-Shot Learning & Domain-aware Visual Bias Eliminating for Generalized Zero-Shot Learning
讲解实例+详细介绍@Resource与@Autowired注解的区别(全网最全)
Web浏览器工作流程解析
【第四章】详解Feign的实现原理
Zotero | Zotero translator插件更新 | 解决百度学术文献无法获取问题
‘vite‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。
【网络攻防】常见的网络攻防技术——黑客攻防(通俗易懂版)
【科普向】5G核心网架构和关键技术
《白帽子说Web安全》思维导图