美文网首页快乐写代码
T105、从前序与中序遍历序列构造二叉树

T105、从前序与中序遍历序列构造二叉树

作者: 上行彩虹人 | 来源:发表于2020-09-09 19:53 被阅读0次

    根据一棵树的前序遍历与中序遍历构造二叉树。
    注意:
    你可以假设树中没有重复的元素。
    例如,给出
    前序遍历 preorder = [3,9,20,15,7]
    中序遍历 inorder = [9,3,15,20,7]
    返回如下的二叉树:

    3
    

    /
    9 20
    /
    15 7

    二叉树的题第一反应过来需要使用递归求解
    二叉树-->分解-->递归

     public TreeNode buildTree(int[] preorder, int[] inorder) {
            if(preorder.length==0||inorder.length==0){
                return null;
            }
            TreeNode root=new TreeNode (preorder[0]);
            for(int i=0;i<preorder.length;i++){
                if(preorder[0]==inorder[i]){
                    root.left=buildTree(Arrays.copyOfRange(preorder,1,i+1),Arrays.copyOfRange(inorder,0,i));
                    root.right=buildTree(Arrays.copyOfRange(preorder,i+1,preorder.length),Arrays.copyOfRange(inorder,i+1,inorder.length));
                    break;
                }
            }
            return root;
        }
    

    相关文章

      网友评论

        本文标题:T105、从前序与中序遍历序列构造二叉树

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