leetcode力扣刷题打卡
题目:1669. 合并两个链表
描述:给你两个链表 list1 和 list2 ,它们包含的元素分别为 n 个和 m 个。
请你将 list1 中下标从 a 到 b 的全部节点都删除,并将list2 接在被删除节点的位置。
解题思路
1、按顺序来,一步步走;
2、可以把链表节点存放在数组中,用起来会方便很多。
原代码##
class Solution {
public:
ListNode* mergeInBetween(ListNode* list1, int a, int b, ListNode* list2) {
int cnt = 0;
ListNode * l1 = list1;
ListNode *p = new ListNode(-1);
ListNode *pp = p;
vector<ListNode*>v;
while (l1) {
v.emplace_back(l1);
l1 = l1->next;
}
for (int i = 0; i < a; ++i) {
p->next = v[i];
p = p->next;
}
p->next = list2;
while (p->next != nullptr) {
p = p->next;
}
for (int i = b + 1; i < v.size(); ++i) {
p->next = v[i];
p = p->next;
}
return pp->next;
}
};