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; }