记录,判断左右子树是否为零没法输出
#include<iostream>
#include<stdio.h>
#include<vector>
#include<algorithm>
using namespace std;
typedef long long LL;
const int maxn=1010;
vector<int> v,res;
int tree[maxn]={0};
void findpath(int root){
if(tree[root]==0) {
res=v;
//printf("1");
for(int i=0;i<v.size();i++){
printf("%d ",v[i]);
}
return;
}
v.push_back(tree[root]);
// printf("%d",v[0]);
if(tree[2*root]!=0) findpath(root*2);
if(tree[2*root+1]!=0) findpath(root*2+1);
v.pop_back();
}
int main()
{
int n;
scanf("%d",&n);
for(int i=1;i<=n;i++){
scanf("%d",&tree[i]);
}
findpath(1);
}