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.
Solutions(Only function):
class Solution {
public ListNode mergeInBetween(ListNode l1, int a, int b, ListNode l2) {
ListNode curr=l1;
ListNode d0=null,e0=null;
int flag=0,count=1;
while(curr!=null)
{
if(count==a)
d0=curr;
if(count==b)
e0=curr.next.next;
curr=curr.next;
++count;
}
d0.next=l2;
curr=l2;
while(curr.next!=null)
{
curr=curr.next;
}
curr.next=e0;
return l1;
}
}
No comments:
Post a Comment