1669. 合并两个链表
題解:
模拟链表操作
/**
* 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 mergeInBetween(ListNode list1, int a, int b, ListNode list2) {
int i = 0;
ListNode head = new ListNode(-1, list1);
ListNode index = list1;
ListNode right = null;
ListNode left = null;
// 拿到删除始节点的前一个节点
while (i < a - 1 && index != null) {
index = index.next;
i++;
}
left = index;
if (a == 0) head.next = list2;
// 拿到删除末节点的后一个节点
while (i < b + 1 && index != null) {
index = index.next;
i++;
}
right = index;
// 拼接
left.next = list2;
while (list2.next != null) {
list2 = list2.next;
}
list2.next = right;
// 返回开头
return head.next;
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧