class Solution {
public:
ListNode* mergeInBetween(ListNode* list1, int a, int b, ListNode* list2) {
ListNode* ans = list1, * list2_head = list2;
while (list2->next != NULL)list2 = list2->next;
for (int i = 0; i <= b; i++) {
if (i == a - 1) {
ListNode* p = list1;
list1 = list1->next;
p->next = list2_head;
continue;
}
list1 = list1->next;
}
list2->next = list1;
return ans;
}
};