题解 | #二叉搜索树的后序遍历序列#

重建二叉树

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

{java}递归思路:

1、前序:序列的第一个值一定是整个树的根节点;
2、后续:根节点左边的值全部的都是在树的左子节点这一边,根节点右边的值都在树的右子节点这一边;
3、根据1和2可以判断树的根节点并将左右子树分开;
4、左右子树同样符合1、2两点,将左右子序列递归即可;

import java.util.*;
public class Solution {
    public TreeNode reConstructBinaryTree(int [] pre,int [] vin) {
        if(pre.length == 0) return null;
        if(pre.length == 1) return new TreeNode(pre[0]);
        int index = 0;
        for (; index < vin.length; index++){
            if(vin[index] == pre[0] ){
                break;
            }
        }
        TreeNode head  = new TreeNode(pre[0]);
        head.left = reConstructBinaryTree(
                Arrays.copyOfRange(pre,1,index + 1),
                Arrays.copyOfRange(vin,0,index)
        );

        head.right = reConstructBinaryTree(
                Arrays.copyOfRange(pre,index + 1,pre.length),
                Arrays.copyOfRange(vin,index + 1,vin.length)
        );
        return head;
    }
}

全部评论

相关推荐

好久没来牛客了,今天面试了一个实习生,感觉对方形象乱糟糟的,头发像鸡窝,像刚睡醒就来面试了,第一印象直接大打折扣,感觉我没有受到应有的尊重,再加上对方业务能力也一般,我直接挂掉;大家面试的时候还是好好收拾一下自己吧,争取给面试官留下个好印象,面试这东西还是存在眼缘的
MinJerous:更在乎本质,应该看候选人是否和岗位需要的能力匹配。洗脸/不洗头都无所谓吧,说不定人家刚刚通宵准备,就是为了这场面试呢?你挂掉他核心原因还是他能力不行,而不是形象。就算形象好点,能力不行你敢给过吗,不怕后面+1质疑你
点赞 评论 收藏
分享
心中的变压器:简历需要突出重点
点赞 评论 收藏
分享
04-28 11:34
西北大学 运营
牛客4396号:不好意思,这个照片猛一看像丁真
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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