int* PrintFromTopToBottom(struct TreeNode* root, int* returnSize ) {
    // write code here
    //层次遍历
    if(!root){
        return NULL;
    }
    //数组tree用于存储已访问过的结点的值,数组temp用于存储访问到的结点地址
    //添上首尾指针,使temp在逻辑上形成一个队列,n用于记录结点数
    int *tree=malloc(1000*sizeof(int)),*temp[1000],top=-1,rear=-1,n=0;
    struct TreeNode* p=root;
    temp[++top]=p;
    while(top!=rear){
        p=temp[++rear];
        tree[n++]=*temp[rear];
        if(p->left){
            temp[++top]=p->left;
        }
        if(p->right){
            temp[++top]=p->right;
        }
    }
    *returnSize=n;
    return tree;
}