题解 | #重建二叉树#

重建二叉树

http://www.nowcoder.com/practice/8a19cbe657394eeaac2f6ea9b0f6fcf6

知识点:前序遍历,中序遍历,二叉树的构造

数据结构课本里使用c++版本写的,这里用java版本仿了一遍

import java.util.*;

public class Solution {

public TreeNode createByPreMid(int[] pre,int[] mid,int ipre,int imid,int n){
    if(n==0)
        return null;
    TreeNode node = new TreeNode(0);
    node.val = pre[ipre];
    int i;
    for(i=0;i<n;++i){
        if(pre[ipre]==mid[imid+i])
            break;
    }
    node.left = createByPreMid(pre,mid,ipre+1,imid,i);
    node.right= createByPreMid(pre,mid,ipre+i+1,imid+i+1,n-i-1);
    return node;
}

public TreeNode reConstructBinaryTree(int [] pre,int [] vin) {
    int n = pre.length;
    return createByPreMid(pre,vin,0,0,n);
}

}

阿勇算法解集 文章被收录于专栏

对一些基础的,经典的题目的算法题解,每道题的题解尽量做到一题多解,举一反三。其中每一个题解中,若是参考了其他牛人的想法,我会备注出来。

全部评论

相关推荐

西松屋:说明原部门有机会把
点赞 评论 收藏
分享
2024-12-29 19:48
河北科技大学 Java
没事就爱看简历:问题不在于简历:1、大学主修课程学那么多应用语言,作为计算机专业是很难理解的。 2、技能部分,每一个技能点的后半句话,说明对熟练,熟悉的标准有明显误会。 3、项目应该是校企合作的练习吧,这个项目你负责什么,取得了哪些成果都没有提及,只是列举了你认为有技术含量的点,而这些都有成熟的实现。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务