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