给你二叉树的根节点 root ,返回它节点值的 前序 遍历。
示例 1:
输入:root = [1,null,2,3]输出:[1,2,3]
示例 2:
输入:root = []输出:[]
示例 3:
输入:root = [1]输出:[1]
示例 4:
输入:root = [1,2]输出:[1,2]
示例 5:
输入:root = [1,null,2]输出:[1,2]
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* struct TreeNode *left;
* struct TreeNode *right;
* };
*/
/**
* Note: The returned array must be malloced, assume caller calls free().
*/
void preorder(struct TreeNode* root,int* res,int*resSize){
if(root==NULL){
return;//为空直接返回
}
int a=*resSize;//将数组大小赋值给a
res[a]=root->val;//将值存入到res数组中
*resSize=*resSize+1;//数组大小加1
preorder(root->left,res,resSize);//递归进入左指针
preorder(root->right,res,resSize);//递归进入右指针
}
int* preorderTraversal(struct TreeNode* root, int* returnSize) {
int *res=(int*)malloc(sizeof(int)*10000);//开辟一个足够大的动态空间
* returnSize=0;//数组大小,初始值0
preorder(root,res,returnSize);//调用函数
return res;//返回值
}