> For the complete documentation index, see [llms.txt](https://anton-veselskyi.gitbook.io/codding-problems-solutions/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://anton-veselskyi.gitbook.io/codding-problems-solutions/leetcode/medium/binary-tree-inorder-traversal.md).

# Binary Tree Inorder Traversal

## [Binary Tree Inorder Traversal](https://leetcode.com/problems/binary-tree-inorder-traversal)

Given the `root` of a binary tree, return *the inorder traversal of its nodes' values*.

**Example 1:** ![](https://assets.leetcode.com/uploads/2020/09/15/inorder_1.jpg)

```

Input: root = [1,null,2,3]
Output: [1,3,2]
```

**Example 2:**

```

Input: root = []
Output: []
```

**Example 3:**

```

Input: root = [1]
Output: [1]
```

**Example 4:** ![](https://assets.leetcode.com/uploads/2020/09/15/inorder_5.jpg)

```

Input: root = [1,2]
Output: [2,1]
```

**Example 5:** ![](https://assets.leetcode.com/uploads/2020/09/15/inorder_4.jpg)

```

Input: root = [1,null,2]
Output: [1,2]
```

**Constraints:**

* The number of nodes in the tree is in the range `[0, 100]`.
* `-100 <= Node.val <= 100`

**Follow up:**

Recursive solution is trivial, could you do it iteratively?

## Solutions

### 🧠 Cpp

```cpp
/**
 * Definition for a binary tree node.
 * struct TreeNode
 {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
 */
class Solution
{
public:
    vector<int> inorderTraversal(TreeNode* root)
    {
        vector<int> res;

        if(!root)
            return res;
        if(root->left)
        {
            vector<int> &&tres = inorderTraversal(root->left);
            res.insert(res.end(), tres.begin(), tres.end());
        }

        res.emplace_back(root->val);

        if(root->right)
        {
            vector<int> &&tres = inorderTraversal(root->right);
            res.insert(res.end(), tres.begin(), tres.end());
        }

        return res;
    }
};
```
