C++ Simple Recursive Solution, No Map
\nclass Solution {\npublic:\n    TreeNode* rec(int l, int r) {\n        if (l > r) return NULL;\n        \n        int i = 0;\n        while (m_inorder[i] != m_
```\nclass Solution {\npublic:\n    TreeNode* rec(int l, int r) {\n        if (l > r) return NULL;\n        \n        int i = 0;\n        while (m_inorder[i] != m_postorder[m_curr]) {\n            i++;\n        }\n        \n        m_curr--;\n        TreeNode* node = new TreeNode(m_inorder[i]);\n        node->right = rec(i+1, r);\n        node->left = rec(l, i-1);\n        return node;\n        \n    }\n    \n    TreeNode* buildTree(vector<int>& inorder, vector<int>& postorder) {\n        m_postorder = postorder, m_inorder = inorder, m_curr = inorder.size()-1;\n        return rec(0, postorder.size()-1);\n    }\n    \nprivate:\n    int m_curr;\n    vector<int> m_postorder, m_inorder;\n};\n```\n**Like it? please upvote!**
['C']