Construct Binary Tree from Inorder and Postorder Traversal LeetCode solution in C++
1class Solution {2public:3TreeNode *buildTree(vector<int> &ino, vector<int> &post) {4int i1 = post.size() - 1;5return solve(i1, ino, post, 0, ino.size() - 1);6}7TreeNode *solve(int &i, vector<int> &in, vector<int> &post, int l, int r) {8if (l > r) return NULL;9int x = r;10while (post[i] != in[x]) {11x--;12}13i--;14// cout<<in[x]<<" ";15TreeNode *root = new TreeNode(in[x]);16root->right = solve(i, in, post, x + 1, r);17root->left = solve(i, in, post, l, x - 1);18return root;19}20};