这道题的通过率0.59,可见这道题多么的简单,作为一个30分的题,
如果二叉树的是一个完全二叉树,那么它的形态已经被确定了,然后又因为二叉搜索树的中序序列的性质,直接往已经确定形状的二叉树里面填数字就可以了,层序遍历以是下标1到n就可以了
#include <bits/stdc++.h>
#define fi first
#define se second
#define pb push_back
#define sz(x) ((int) x.size())
#define all(x) (x).begin(), (x).end()
using namespace std;
typedef long long ll;
typedef vector<int> vi;
typedef pair<int, int> pa;
const int N = 1e3 + 5;
int n, cnt;
int a[N], tree[N];
void inorder(int root) {
if (root > n) return;
inorder(root * 2);
tree[root] = a[cnt++];
inorder(root * 2 + 1);
}
int main() {
cin >> n;
for (int i = 0; i < n; i++) cin >> a[i];
sort(a, a + n);
inorder(1);
for (int i = 1; i <= n; i++) cout << tree[i] << (i < n ? " " : "\n");
return 0;
}