剑指offer-4-重建二叉树

重建二叉树

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

思路:
递归
二叉树有4种遍历方式:先根,中根,后根,层序。这个顺序值得是一个树分为根,左子树,右子树。
层序不能递归遍历。
先根和中根重建二叉树的思路,pre[0]为根节点,in中的元素通过pre[0]分为两部分,分别是左子树和右子树。

import java.util.*;
public class Solution {
    public TreeNode reConstructBinaryTree(int [] pre,int [] in) {
        if(pre.length<=0){//pre和in相同长度
            return null;
        }
        TreeNode head=new TreeNode(pre[0]);
        int index=0;
        while(index<in.length && in[index]!=pre[0]){
            index++;
        }
        head.left=reConstructBinaryTree(Arrays.copyOfRange(pre,1,index+1),
                                        Arrays.copyOfRange(in,0,index));             //左子树
        head.right=reConstructBinaryTree(Arrays.copyOfRange(pre,index+1,pre.length),
                                         Arrays.copyOfRange(in,index+1,in.length));  //右子树
        return head;
    }
}
剑指offer与数据结构 文章被收录于专栏

本专栏包括剑指offer题目和一些刷题用的数据结构,单调栈,树状数组,差分数组,后面还会更新红黑树等较为复杂的数据结构

全部评论

相关推荐

Pandaileee:校友加油我现在也只有一个保底太难了
点赞 评论 收藏
分享
ProMonkey2024:5个oc?厉害! 但是有一个小问题:谁问你了?😡我的意思是,谁在意?我告诉你,根本没人问你,在我们之中0人问了你,我把所有问你的人都请来 party 了,到场人数是0个人,誰问你了?WHO ASKED?谁问汝矣?誰があなたに聞きましたか?누가 물어봤어?我爬上了珠穆朗玛峰也没找到谁问你了,我刚刚潜入了世界上最大的射电望远镜也没开到那个问你的人的盒,在找到谁问你之前我连癌症的解药都发明了出来,我开了最大距离渲染也没找到谁问你了我活在这个被辐射蹂躏了多年的破碎世界的坟墓里目睹全球核战争把人类文明毁灭也没见到谁问你了(别的帖子偷来的,现学现卖😋)
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务