leetcode|leetcode 94.二叉树的中序遍历

【leetcode|leetcode 94.二叉树的中序遍历】给定一个二叉树的根节点 root ,返回它的 中序 遍历。

/** * 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(). */int BinaryTreeSize(struct TreeNode* root) { if(root==NULL) { return 0; }return BinaryTreeSize(root->left) + BinaryTreeSize(root->right) +1; }void _inorderTraversal(struct TreeNode* root, int* a,int* pi) { if(root == NULL) { return; }//左子树 _inorderTraversal(root->left, a,pi); //根 a[(*pi)++] = root->val; //右子树 _inorderTraversal(root->right, a,pi); }int* inorderTraversal(struct TreeNode* root, int* returnSize) { //1.获取二叉树结点个数 int size = BinaryTreeSize(root); //2.动态开辟数组 int* a = (int*)malloc(sizeof(int)*size); //3.中序遍历,结点数据存入数组a中//数组初始下标 int i = 0; _inorderTraversal(root, a, &i); *returnSize = size; return a; }

    推荐阅读