题目:
样例:
input:
10
-1 0 0 0 1 1 1 3 3 8
output:
4 5 6 1 2 7 9 8 3 0
反思:
拖延症晚期患者了…好久都没A题了(崩溃大哭)可能是一开始对树这一块有点畏惧心理,一直拖着…
思路:
其实主要是学习了一下vector的用法,看了一下书…
代码:
#include <cstdio>
#include <iostream>
#include <cstring>
#include <algorithm>
#include <vector>
using namespace std;
const int maxn=111111;
int n;
vector<int>v[maxn];
void dfs(int root)
{
if(v[root].size()==0) return;
else
{
for(int i=0;i<v[root].size();i++)
{
dfs(v[root][i]);
cout<<v[root][i]<<" ";
}
}
}
int main()
{
cin>>n;
int root;
for(int i=0;i<n;i++)
{
int temp;
cin>>temp;
if(temp==-1) root=i;
else v[temp].push_back(i);
}
dfs(0);
cout<<root<<endl;
return 0;
}