O(n)
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* struct TreeNode *left;
* struct TreeNode *right;
* };
*/
void helper(struct TreeNode* node,int *rst, int* returnSize){
if(node==NULL){
return;
}
helper(node->left,rst,returnSize);
rst[*returnSize]=node->val;
*returnSize=(*returnSize)+1;
helper(node->right,rst,returnSize);
}
/**
* Note: The returned array must be malloced, assume caller calls free().
*/
int* inorderTraversal(struct TreeNode* root, int* returnSize){
*returnSize=0;
int *rst=(int *)malloc(sizeof(int)*1000);
helper(root,rst,returnSize);
return rst;
}