Leetcode 106. Construct Binary Tree from Inorder and Postorder Travers | | Leetcode 106. Construct Binary Tree from Inorder and Postorder Travers 文章作者:Tyan博客:noahsnail.com | CSDN | 简书 1. Description 2. Solution123456789101112131415161718192021222324252627282930313233343536/** * 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: TreeNode* buildTree(vector<int>& inorder, vector<int>& postorder) { int current = inorder.size() - 1; return build(postorder, inorder, current, 0, postorder.size() - 1); } private: TreeNode* build(vector<int>& postorder, vector<int>& inorder, int& current, int start, int end) { if(current == -1 || start > end) { return nullptr; } int value = postorder[current]; TreeNode* node = new TreeNode(value); int index = 0; for(int i = start; i <= end; i++) { if(inorder[i] == value) { index = i; break; } } current--; node->right = build(postorder, inorder, current, index + 1, end); node->left = build(postorder, inorder, current, start, index - 1); return node; }}; Reference https://leetcode.com/problems/construct-binary-tree-from-inorder-and-postorder-traversal/description/ 如果有收获,可以请我喝杯咖啡! 赏 微信打赏 支付宝打赏