一 问题
二 代码
let buildTree = function(inorder, postorder) {
let helper=function(instart,inend,poststart,postend){
if(instart>inend||poststart>postend) return null;
//后序遍历中最后一个节点是根节点
let value=postorder[postend];
let index=inorder.indexOf(value);
let countleft=index-instart;
let root=new TreeNode(value);
//注意poststart+countleft-1,这里需要减一
root.left=helper(instart,index-1,poststart,poststart+countleft-1);
root.right=helper(index+1,inend,poststart+countleft,postend-1);
return root;
}
return helper(0,inorder.length-1,0,postorder.length-1);
};