题目:
样例:
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;
}