/**
* struct TreeNode {
* int val;
* struct TreeNode *left;
* struct TreeNode *right;
* };
*/
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param root TreeNode类
* @return int整型一维数组
* @return int* returnSize 返回数组行数
*/
int TreeSize(struct TreeNode* root)
{
if(root==NULL)
return 0;
return TreeSize(root->left) + TreeSize(root->right)+1;
}
void Pre_Order(struct TreeNode*root,int*i,int*arr)
{
if(root==NULL)
return;
arr[(*i)++] = root->val;
Pre_Order(root->left,i,arr);
Pre_Order(root->right,i,arr);
}
int* preorderTraversal(struct TreeNode* root, int* returnSize)
{
*returnSize = TreeSize(root);//先获取要开的数组大小
int*arr = (int*)malloc(sizeof(int)*(*returnSize));
int i = 0;
Pre_Order(root,&i,arr);
return arr;
}