您的位置:首页 > 其它

Construct Binary Tree from Preorder and Inorder Traversal

2014-02-12 04:01 344 查看
public class Solution {
public TreeNode buildTree(int[] preorder, int[] inorder) {
int len =preorder.length;
if(len<=0) return null;
return build(preorder,0,len-1,inorder,0,len-1);
}
public TreeNode build(int[]pre,int preS,int preE,int []in,int inS,int inE){
if(preS>preE || inS>inE) return null;
int first = pre[preS];
TreeNode p = new TreeNode(first);
if(preS==preE) // don't forget this
return p;
int index = inS;
while(in[index]!=first){
index++;
}
int len =index-inS;

p.left = build(pre,preS+1,preS+len,in,inS,index-1);
p.right = build(pre,preS+len+1,preE,in,index+1,inE);
return p;
}
}


View Code
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: