重建二叉树

递归。

 public TreeNode reConstructBinaryTree(int [] pre,int [] vin) {
       int m= pre.length;
       int n= vin.length;
       if(m==0||n==0) return null;
       TreeNode root=new TreeNode(pre[0]);
       for (int i=0;i<vin.length;i++){
           if(pre[0]==vin[i]){
               root.left=reConstructBinaryTree(Arrays.copyOfRange(pre,1,i+1),Arrays.copyOfRange(vin,0,i));
               root.right=reConstructBinaryTree(Arrays.copyOfRange(pre,i+1,pre.length),Arrays.copyOfRange(vin,i+1,vin.length));
               break;
           }
       }
       return root;

    }


全部评论

相关推荐

11-20 17:33
已编辑
门头沟学院 嵌入式工程师
小米汽车 底软测开岗 n*15(15大概率拿不到) 双非硕
点赞 评论 收藏
分享
09-27 14:42
已编辑
浙江大学 Java
未来未临:把浙大放大加粗就行
点赞 评论 收藏
分享
努力学习的小绵羊:我反倒觉得这种挺好的,给不到我想要的就别浪费大家时间了
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务