问题遇到的现象和发生背景

问题相关代码,请勿粘贴截图
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
struct node {
int data, next;
}list[100000];
int main()
{
int st1, st2, n, a;
vector<int> v1, v2, v;
cin >> st1 >> st2 >> n;
for (int i = 0; i < n; i++) {
cin >> a;
cin >> list[a].data >> list[a].next;
}
int p1 = st1, p2 = st2;
while (p1 != -1) {
v1.push_back(p1);
p1 = list[p1].next;
}
while (p2 != -1) {
v2.push_back(p2);
p2 = list[p2].next;
}
if (v1.size() > v2.size()) {
reverse(v2.begin(), v2.end());
for (int i = 0, cnt = 0; i < v1.size(); i++) {
if (i > 0 && i % 2 == 0 && cnt < v2.size()) v.push_back(v2[cnt++]);
v.push_back(v1[i]);
}
for (int i = 0; i < v.size() - 1; i++) {
printf("%05d %d %05d\n", v[i], list[v[i]].data, v[i+1]);
}
printf("%05d %d -1\n", v[v.size() - 1], list[v[v.size() - 1]].data);
} else {
reverse(v1.begin(), v1.end());
for (int i = 0, cnt = 0; i < v2.size(); i++) {
if (i > 0 && i % 2 == 0 && cnt < v1.size()) v.push_back(v1[cnt++]);
v.push_back(v2[i]);
}
for (int i = 0; i < v.size() - 1; i++) {
printf("%05d %d %05d\n", v[i], list[v[i]].data, v[i+1]);
}
printf("%05d %d -1\n", v[v.size() - 1], list[v[v.size() - 1]].data);
}
return 0;
}
运行结果及报错内容

我的解答思路和尝试过的方法
我想要达到的结果