J07、重建二叉树

输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。
例如,给出
前序遍历 preorder = [3,9,20,15,7]
中序遍历 inorder = [9,3,15,20,7]
返回如下的二叉树:

看见建二叉树的题要立马反应到递归求解。本题中前序遍历数组中的第一个值就是根节点,使用该值将中序遍历数组分为2部分,然后递归建树。

public TreeNode buildTree(int[] preorder, int[] inorder) {
        if(preorder.length == 0 || inorder.length == 0)
            return null;
        TreeNode root = new TreeNode(preorder[0]);
        
        //找到根节点在中序遍历数组中的位置
        int i=0;
        while(i

你可能感兴趣的:(J07、重建二叉树)