lm709409753的专栏

最怕你一生碌碌无为,还安慰自己平凡可贵!梦想要有,并为之坚持✊。

重置二叉树

问题描述:

根据二叉树的前序和后序遍历的结果,构建二叉树;

代码实现

package edu.liangman.offer;



/**
 * Created by lm on 2017/1/3.
 */
public class RebuldBinTeee {

    public static TreeNode bulid(int[] pre,int preStart,int preEnd,int[] in,
                             int inStart,int inEnd){

        if(preStart>preEnd||inStart>inEnd){
            return  null;
        }
        TreeNode root = new TreeNode(pre[preStart]);
        for(int i=inStart;i<=inEnd;i++){
            if(in[i]==pre[preStart]) {
                root.left=bulid(pre,preStart+1,i-inStart+preStart,
                        in,inStart,i-1);
                root.right= bulid(pre,i-inStart+preStart+1,preEnd,
                        in,i+1,inEnd);
            }
        }

       return root;

    }
    public static void prePrintTree(TreeNode root){
        if(root!=null){
            System.out.print(root.val+"  ");
            prePrintTree(root.left);
            prePrintTree(root.right);
        }
    }

    public static void main(String[] args){
        int[] pre ={1,2,4,7,3,5,6,8};
        int[] in  ={4,7,2,1,5,3,8,6};
        TreeNode root = bulid(pre,0,pre.length-1,in,0,in.length-1);
        prePrintTree(root);
    }


    public static class TreeNode{
        private int val;
        private TreeNode left;
        private TreeNode right;

        public TreeNode(int val) {
            this.val = val;
            this.left = null;
            this.right = null;
        }

        public TreeNode() {

        }

        public int getVal() {
            return val;
        }

        public void setVal(int val) {
            this.val = val;
        }

        public TreeNode getLeft() {
            return left;
        }

        public void setLeft(TreeNode left) {
            this.left = left;
        }

        public TreeNode getRight() {
            return right;
        }

        public void setRight(TreeNode right) {
            this.right = right;
        }
    }
}

运行结果

这里写图片描述

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lm709409753/article/details/53992485
个人分类: 算法
想对作者说点什么? 我来说一句

一般的css的重置样式

2017年11月15日 1KB 下载

二 叉 树 . doc

2009年08月09日 43KB 下载

二叉树(各种基本算法)

2010年11月29日 300KB 下载

二叉树---数据结构

2010年10月29日 3KB 下载

树和二叉树

2011年10月13日 295KB 下载

数据结构二叉树的实验()

2011年07月18日 1KB 下载

二叉树的先序中序后序遍历

2011年05月03日 1.81MB 下载

没有更多推荐了,返回首页

不良信息举报

重置二叉树

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭