重置二叉树

原创 2017年01月03日 10:57:00

问题描述:

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

代码实现

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;
        }
    }
}

运行结果

这里写图片描述

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

ztree的给树赋值及重置树的实现

选择ztree替代jstree是因为ztree的官网的api文档详细,容易理解。 下面说下在开发中ztree的2个功能的实现 1、给树赋值如下图 代码如下: //修改-人员管理 function a...

数据结构-非递归遍历二叉树

  • 2017年11月16日 10:28
  • 216KB
  • 下载

ECS Linux系统重置mysql数据库root用户密码

ECS Linux系统重置mysql数据库root用户密码 ecs linux 系统mysql运行正常,但root密码忘记了,找回root密码方法如下: 1. 打开/etc/my.cn...

使用数组实现二叉树

  • 2016年08月30日 11:54
  • 7KB
  • 下载

Algorithms - 离散概率值(discrete) 和 重置\洗牌(shuffle) 算法 及 代码

离散概率值(discrete) 和 重置\洗牌(shuffle) 算法 及 代码 本文地址: http://blog.csdn.net/caroline_wendy/article/details...

数据结构二叉树查找方式

  • 2016年11月05日 23:44
  • 67KB
  • 下载

数据结构之二叉树

  • 2015年12月02日 14:20
  • 562KB
  • 下载

FTP 与服务器的连接被重置的另类原因与另类解决【IP冲突】

公司在万网买了虚拟主机,今天用台式机连了上去传东西,还有一部分文件在另一台笔记本上,于是用笔记本也连了上去,传到一半问题来了,提示与服务器的连接被重置 但是,公司买的另外一个万网主机却能正常...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:重置二叉树
举报原因:
原因补充:

(最多只允许输入30个字)