-
Notifications
You must be signed in to change notification settings - Fork 1
/
Day 100.2.txt
54 lines (35 loc) · 1.32 KB
/
Day 100.2.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
1669. Merge In Between Linked Lists
You are given two linked lists: list1 and list2 of sizes n and m respectively.
Remove list1's nodes from the ath node to the bth node, and put list2 in their place.
The blue edges and nodes in the following figure incidate the result:
Build the result list and return its head.
Example 1:
Input: list1 = [0,1,2,3,4,5], a = 3, b = 4, list2 = [1000000,1000001,1000002]
Output: [0,1,2,1000000,1000001,1000002,5]
Explanation: We remove the nodes 3 and 4 and put the entire list2 in their place. The blue edges and nodes in the above figure indicate the result.
Example 2:
Input: list1 = [0,1,2,3,4,5,6], a = 2, b = 5, list2 = [1000000,1000001,1000002,1000003,1000004]
Output: [0,1,1000000,1000001,1000002,1000003,1000004,6]
Explanation: The blue edges and nodes in the above figure indicate the result.
Constraints:
3 <= list1.length <= 104
1 <= a <= b < list1.length - 1
1 <= list2.length <= 104
class Solution {
public ListNode mergeInBetween(ListNode l1, int a, int b, ListNode l2) {
ListNode ptr=l1;
for(int i=0;i<a-1;i++)
{
ptr=ptr.next;
}
ListNode k=ptr;
for(int i=a;i<=b;i++)
{
k=k.next;
}
ptr.next=l2;
for(;l2.next!=null;l2=l2.next);
l2.next=k.next;
return l1;
}
}