1064 Complete Binary Search Tree

1064 Complete Binary Search Tree

#include <bits/stdc++.h>
using namespace std;
int n, cbt[1010]; // 完全二叉树
int idx=0, nums[1010]; // 存放输入

void PreOrderBuild(int root)
{
    if(root*2<=n) PreOrderBuild(root*2);
    if(root<=n) cbt[root]=nums[idx++];
    if(root*2+1<=n) PreOrderBuild(root*2+1);
}

int main() {
    cin>>n;
    for(int i=0;i<n;++i) cin>>nums[i];
    sort(nums,nums+n);
    PreOrderBuild(1);
    for(int i=1;i<=n;++i){
        if(i!=1) cout<<" ";
        cout<<cbt[i]; // cbt 本身就是层序顺序 
    }
}

上一篇:Leetcode No.67 Add Binary二进制求和(c++实现)


下一篇:Validate Binary Search Tree