输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。

雨燕双飞 提交于 2019-12-06 03:29:30

public class Solution {

int i=0;
public TreeNode reConstructBinaryTree(int [] pre,int [] in) {
 
    return constructBiTree(pre,in,0,pre.length-1);
}

public TreeNode constructBiTree(int pre[],int in[],int start,int end){
    
    if(start>end)
        return null;
    
    TreeNode node = new TreeNode(pre[i]);
    
    int index=Location(pre[i],in);
    i++;
    
    if(i>=pre.length)
        return node;
    
    node.left=constructBiTree(pre,in,start,index-1);
    node.right=constructBiTree(pre,in,index+1,end);
    
    return node;
    
}

public int Location(int target,int in[]){
    int i=0;
    for( i=0;i<in.length;i++){
        if(target==in[i])
           break;
    }
    return i;
}

}

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!