leetcode 106 【中序,后序建树】

来源:互联网 发布:php企业网站模板 编辑:程序博客网 时间:2024/05/18 13:25

和leetcode 105差不多的。

class Solution {public:    TreeNode* find(int l,int r,int ll,int rr,vector<int>& inorder, vector<int>& postorder)    {        if(l<0||r<0||ll<0||rr<0||l>r||ll>rr) return NULL;        TreeNode *root=new TreeNode(postorder[rr]);        if(ll==rr) {root->left=root->right=NULL;return root;}        int mid;        for(int i=l;i<=r;i++) if(inorder[i]==root->val) {mid=i;break;}        root->left=find(l,mid-1,ll,ll+mid-l-1,inorder,postorder);        root->right=find(mid+1,r,ll+mid-l,rr-1,inorder,postorder);        return root;    }    TreeNode* buildTree(vector<int>& inorder, vector<int>& postorder) {        if(inorder.size()==0) return NULL;        return find(0,inorder.size()-1,0,postorder.size()-1,inorder,postorder);    }


0 0