AcWing 1550. 完全二叉搜索树
原题链接
中等
作者:
wisper
,
2020-09-14 15:50:41
,
所有人可见
,
阅读 573
思路
中序遍历建树,运用递归
C++ 代码
#include <iostream>
#include <algorithm>
#define MAX 1000
using namespace std;
int value[MAX], preOrder[MAX + 1], k = 0;
int N;
void dfs(int x) {
if (x > N) return;
dfs(x * 2);
preOrder[x] = value[k++];
dfs(x * 2 + 1);
}
int main() {
cin >> N;
for (int i = 0; i < N; i++) {
cin >> value[i];
}
sort(value, value + N);
dfs(1);
printf("%d", preOrder[1]);
for (int i = 2; i <= N; i++) {
printf(" %d", preOrder[i]);
}
return 0;
}