题目描述
代码
class Solution {
public:
unordered_mapfindIndex;
TreeNode* buildTree(vector& inorder, vector& postorder) {
for(int i=0;i inorder,int instart,int inend,vector postorder,int postart,int poend){
if(instart>inend)
return nullptr;
int rootval=postorder[poend];
TreeNode* root=new TreeNode(rootval);
int index=findIndex[rootval];
int leftsize=index-instart;
root->left=build(inorder,instart,index-1, postorder,postart,postart+leftsize-1);
root->right=build(inorder,index+1,inend, postorder,postart+leftsize,poend-1);
return root;
}
};