#define Max_Size 10000
int* largestValues(struct TreeNode* root, int* returnSize){
*returnSize=0;
if(root==NULL)
{
return NULL;
}
int *result=(int*)malloc(sizeof(int*)*Max_Size);
struct TreeNode *Queue[Max_Size];
int head=0,rear=0;
Queue[rear++]=root;
while(head<rear)
{
int temp=rear;
int max=INT_MIN;
while(head<temp)
{
struct TreeNode *T;
T=Queue[head++];
max=fmax(max,T->val);
if(T->left) Queue[rear++]=T->left;
if(T->right) Queue[rear++]=T->right;
}
result[(*returnSize)++]=max;
}
return result;
}