《剑指Offer》04重建二叉树

题目:
输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。
思路:
递归,主要是找边界条件,找好之后并不难。
/**
 * Definition for binary tree
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
public class Solution {     public TreeNode reConstructBinaryTree(int[] pre,int[] in) {         return re(pre,0,pre.length-1,in,0,in.length-1);     }     public TreeNode re(int[] pre,int l1,int r1,int[] in,int l2,int r2) {         if (r1<l1||r2<l2) {             return null;         }         TreeNode root = new TreeNode(pre[l1]);         for (int i=l2; i<=r2; i++) {             if (in[i]==pre[l1]) {                 root.left=re(pre,l1+1,l1+i-l2,in,l2,i-1);                 root.right=re(pre,l1+i-l2+1,r1,in,i+1,r2);             }         }         return root;     }
}

全部评论

相关推荐

程序员牛肉:你这其实一点都没包装,标准的流水线产品。 实习现在不一定能解决你的问题,你太浮躁了。你看了多少源码?看了多少技术博客?真的没必要这么浮躁的着急找实习,沉下心来学习
投递实习岗位前的准备
点赞 评论 收藏
分享
苗条的伊泽瑞尔最喜欢...:同28届被压力了,电科✌就不能去卷算法吗?把Java留给我们双非卷
投递快手等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务