1
0
Fork 0
mirror of https://gitlab.com/mfocko/LeetCode.git synced 2024-11-14 01:49:41 +01:00
LeetCode/cpp/merge-in-between-linked-lists.cpp
Matej Focko 84ba9d343b
cpp: add «1669. Merge In Between Linked Lists»
Signed-off-by: Matej Focko <mfocko@redhat.com>
2024-03-21 00:05:41 +01:00

34 lines
770 B
C++

#ifdef _MF_TEST
struct ListNode {
int val;
ListNode *next;
ListNode() : val(0), next(nullptr) {}
ListNode(int x) : val(x), next(nullptr) {}
ListNode(int x, ListNode *next) : val(x), next(next) {}
};
#endif
class Solution {
public:
ListNode *mergeInBetween(ListNode *list1, int a, int b, ListNode *list2) {
auto left = list1;
for (int i = 1; i < a; ++i) {
left = left->next;
}
auto right = left;
for (int i = a; i < b + 2; ++i) {
right = right->next;
}
left->next = list2;
auto last_mid = list2;
while (last_mid->next != nullptr) {
last_mid = last_mid->next;
}
last_mid->next = right;
return list1;
}
};