美文网首页
面试题7:重建二叉树

面试题7:重建二叉树

作者: 夹小欣 | 来源:发表于2018-03-19 23:58 被阅读15次
    public TreeNode reConstructBinaryTree(int [] pre,int [] in) {
        if(pre.length==0||in.length==0) return null;
        TreeNode root = new TreeNode(pre[0]);
        int ind = findInd(pre,in,pre[0]);
        return reConstructBinaryTree(pre,0,pre.length-1,in,0,in.length-1);
    }
    //递归构建树
    //pre数组的pb开始节点是当前的树根
    private static TreeNode reConstructBinaryTree(int[] pre,int pb,int pe,int[] in,int ib, int ie){
        if(pb>pe)
            return null;
        TreeNode head = new TreeNode(pre[pb]);
        // ind 确定树根在中序数组中的位置
            int ind = findInd(pre,in,pre[pb]);
        // 中序数组中,ind左边是当前根的左子树
        //左子树的位置是in[ib,ind-1],包含的节点个数是ind-ib
        // pre[pb]是当前的根,右边是他的子树,左子树从右边第一个起
        //在前序数组中,左子树的位置是pre[pb+1,pb+ind-ib]
            head.left = reConstructBinaryTree(pre,pb+1,ind-ib+pb,in,ib,ind-1);
            head.right = reConstructBinaryTree(pre,ind-ib+pb+1,pe,in,ind+1,ie);
        
        return head;
        
    }
    // val是pre中的值,返回val在in中的位置
    private static int findInd(int[] pre,int[] in,int val){
         for(int i=0;i<in.length;i++){
             if(in[i]==val)
                 return i;
         }
        return -1;
    }

相关文章

  • 重建二叉树

    《剑指offer》面试题7:重建二叉树 题目:输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前...

  • 剑指Offer-二叉树

    面试题7:重建二叉树 题目: 输入某二叉树的前序遍历和中序遍历的结果。请重建该二叉树。假设输入的前序遍历和中序遍历...

  • 2.3.4 树

    面试题7:重建二叉树 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果...

  • LeetCode | 面试题07. 重建二叉树【剑指Offer】

    LeetCode 面试题07. 重建二叉树【剑指Offer】【Medium】【Python】【二叉树】【递归】 问...

  • 剑指offer第二版-7.重建二叉树

    本系列导航:剑指offer(第二版)java实现导航帖 面试题7:重建二叉树 题目要求:根据二叉树的前序遍历和中序...

  • 面试题7:重建二叉树

    【题目描述】输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重...

  • 面试题7:重建二叉树

    题目描述: 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重...

  • 面试题7:重建二叉树

  • 面试题7:重建二叉树

    输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。 ...

  • 面试题7: 重建二叉树

网友评论

      本文标题:面试题7:重建二叉树

      本文链接:https://www.haomeiwen.com/subject/ltvmqftx.html