题目链接:https://oj.aicoders.cn/problem/2159
#include<iostream>
using namespace std;
const int N = 100+1;
int n;
int a[N];
void postOrder(int bt){
if(bt == 0){
return;
}else{
if(1 <= bt && bt <= n){
postOrder(bt*2);
postOrder(bt*2+1);
cout << a[bt] << " ";
}
}
}
int getDepth(int bt){
if(bt < 1 || bt > n){
return 0;
}
int ld = getDepth(bt*2);
int rd = getDepth(bt*2+1);
return max(ld,rd)+1;
}
int main(){
cin >> n;
for(int i = 1;i <= n;i++){
cin >> a[i];
}
cout << getDepth(1) << endl;
postOrder(1);
return 0;
}
输出总带一个0,怎么去掉啊。
求调 谢谢!