###### tags: `leetcode` `easy` `Stack` `Tree` `Depth-First Search` `Binary Tree`
# [94. Binary Tree Inorder Traversal](https://leetcode.com/problems/binary-tree-inorder-traversal/description/)
## Description
Given the `root` of a binary tree, return *the inorder traversal of its nodes' values*.
## Examples
### Example1
**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 \leq Node.val \leq 100$
## Code
```c=
void inorder(int* returnList, struct TreeNode* root, int* returnSize) {
if (root == NULL)
return 0;
inorder(returnList, root->left, returnSize);
returnList[(*returnSize)++] = root->val;
inorder(returnList, root->right, returnSize);
}
int* inorderTraversal(struct TreeNode* root, int* returnSize) {
*returnSize = 0;
int* returnList = malloc(100 * sizeof(int));
inorder(returnList, root, returnSize);
return returnList;
}
```
## Complexity
|Space |Time |
|- |- |
|$O(1)$|$O(N)$|
## Result
- Runtime : 0 ms, 100%
- Memory : 5.8 MB, 69.82%