网站持有者和备案企业,如何管理网站页面设计,网站快速优化排名app,广东新闻联播吴姗姗给你两个链表 list1 和 list2 #xff0c;它们包含的元素分别为 n 个和 m 个。
请你将 list1 中第 a 个节点到第 b 个节点删除#xff0c;并将list2 接在被删除节点的位置。
下图中蓝色边和节点展示了操作后的结果#xff1a; 请你返回结果链表的头指针。 示例 1#xff…给你两个链表 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 104 1 a b list1.length - 1 1 list2.length 104
思路一步一步操作即可
/*** 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) {//1.找到链表1的第a-1个节点ListNode nodea list1;for(int i 0; i a - 1; i){nodea nodea.next;}//2.找到链表1的第b1个节点ListNode nodeb nodea.next;for(int i a; i b; i){nodeb nodeb.next;}nodeb nodeb.next;//3.找到链表2的尾节点ListNode tail list2;while(tail.next ! null){tail tail.next;}//4.将链表2插入到链表1的第a个和第b个节点之间nodea.next list2;tail.next nodeb;return list1;}
}