当前位置:网站首页>2022.07.12_每日一题
2022.07.12_每日一题
2022-07-31 06:07:00 【诺.い】
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 <= 1041 <= a <= b < list1.length - 11 <= 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 删除元素后的右部分
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)
边栏推荐
- 我开发了一个利用 Bun 执行 .ts / .js 文件的 VS Code 插件
- Project exercise - memorandum (add, delete, modify, check)
- 简单谈谈Feign
- 从入门到一位合格的爬虫师,这几点很重要
- Foreign trade website optimization - foreign trade website optimization tutorial - foreign trade website optimization software
- 双倍数据速率同步动态随机存储器(Double Data Rate Synchronous Dynamic Random Access Memory, DDR SDRAM)- 逻辑描述部分
- 事务的传播机制
- leetcode 406. Queue Reconstruction by Height
- MySql的安装配置超详细教程与简单的建库建表方法
- 测试 思维导图
猜你喜欢

2022.07.24_每日一题

【Go语言刷题篇】Go完结篇函数、结构体、接口、错误入门学习

解决安装 Bun 之后出现 zsh compinit: insecure directories, run compaudit for list. Ignore insecure directorie

Redux state management

【愚公系列】2022年07月 Go教学课程 022-Go容器之字典

LeetCode刷题——摆动序列#376#Medium

英语翻译软件-批量自动免费翻译软件支持三方接口翻译

Install and use uView

iOS大厂面试查漏补缺

2. (1) Chained storage of stack, operation of chain stack (illustration, comment, code)
随机推荐
文件 - 02 上传文件:上传临时文件到服务器
Chapter 17: go back to find the entrance to the specified traverse, "ma bu" or horse stance just look greedy, no back to search traversal, "ma bu" or horse stance just look recursive search NXM board
codec2 BlockPool:unreadable libraries
PCB抄板
Automatic translation software - batch batch automatic translation software recommendation
事务的四大特性
Foreign trade website optimization - foreign trade website optimization tutorial - foreign trade website optimization software
解决win11/win10在登陆界面(解锁界面)点击获取每日壁纸无效的问题 - get Daily Lockscreen and Wallpaper - Win11/10的登录界面背景图片在哪里?
英语翻译软件-批量自动免费翻译软件支持三方接口翻译
零样本学习&Domain-aware Visual Bias Eliminating for Generalized Zero-Shot Learning
tidyverse笔记——管道函数
tidyverse笔记——dplyr包
Analysis of the implementation principle and detailed knowledge of v-model syntactic sugar and how to make the components you develop support v-model
项目 - 如何根据最近30天、最近14天、最近7天、最近24小时、自定义时间范围查询MySQL中的数据?
Zero-Shot Learning & Domain-aware Visual Bias Eliminating for Generalized Zero-Shot Learning
How to use repeating-linear-gradient
Kubernetes调度
Analysis of pseudo-classes and pseudo-elements
【Go语言入门】一文搞懂Go语言的最新依赖管理:go mod的使用
What is float?What is document flow?Several ways and principles of clearing floats?What is BFC, how to trigger BFC, the role of BFC