94. Binary Tree Inorder Traversal C语言
中序递归二叉树
题目
Given the root of a binary tree, return the inorder traversal of its nodes’ values.
Example 1:
Input: root = [1,null,2,3]
Output: [1,3,2]
Example 2:
Input: root = []
Output: []
Example 3:
Input: root = [1]
Output: [1]
Constraints:
The number of nodes in the tree is in the range [0, 100].
-100 <= Node.val <= 100
解答
/**
* 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().
*/
#define MaxSize 101
int i;
int *ret;
void Tra(struct TreeNode* root)
{
if(root == NULL)
return ;
Tra(root->left);
ret[i] = root->val;
i++;
Tra(root->right);
}
int* inorderTraversal(struct TreeNode* root, int* returnSize){
ret = (int*)malloc(sizeof(int)*MaxSize);
i = 0;
Tra(root);
*returnSize = i;
return ret;
}
注意
因为i是全局变量,所以在inorderTraversal()函数中一定要将i设置初值0,否则跑一个示例可以通过,但无法通过多个循环示例。