重置二叉树

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

运行结果

这里写图片描述

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

使用jQuery重置表单的方法

遇到了一个重置表单问题:就是如何使用jQuery方法重置form表单。 一开始我以为是:$('#formName').reset()执行后发现不行,网上给出的答案是使用 $('#formName')[...
  • u013066244
  • u013066244
  • 2016年10月19日 19:18
  • 8062

关于JavaScript的提交和重置事件

前言: 1> onsubmit 事件会在表单中的确认按钮被点击时发生 2>onreset 事件会在表单中的重置按钮被点击时发生 代码示例如下: =========================...
  • u010661782
  • u010661782
  • 2015年10月10日 10:59
  • 865

访问网站某页面时出现“载入页面时到服务器的连接被重置”

访问网站某页面时出现“载入页面时到服务器的连接被重置”有种情况是,网站的空间是稳定的,网站的程序也是正常的。当我们访问到网站的某个页面的时候,却会显示“载入页面时到服务器的连接被重置”,然后就是整个网...
  • forest_fire
  • forest_fire
  • 2016年03月21日 11:15
  • 3736

css 重置样式表

前言:  关于css样式重置 ,相信对于接触过前端的人都知道在开始编写属于自己的代码之前都需要完成这一步。不过,我还是想说说自己对css重置的理解。希望可以利人利己(哈哈,对,就素介么任性!) 首...
  • u014516981
  • u014516981
  • 2016年08月07日 11:06
  • 12651

Mac重置PRAM 或NVRAM(何时重置,如何重置)

本文转载自豆瓣http://www.douban.com/note/471733960/ 关于 NVRAM 和 PRAM了解有关 Mac 的 PRAM 或 NVRAM 以及何时及如何最好进行重置的信息...
  • kkkenty
  • kkkenty
  • 2015年03月20日 13:15
  • 577

TCP连接被意外重置的原因

明显服务器端上层读取过慢了, 窗口填满了 今天在做服务器压力测试的时候,出现了很奇怪的情况,与服务器建立连接会成功,但是很快会被重置(RESET)掉。花了半天时间,终于找到原因所在,我把过程和结果写...
  • u011676589
  • u011676589
  • 2015年01月04日 16:04
  • 2607

SQL Server重置Sa密码

如果你丢失了SA密码或者SA账号被禁用了,在以下情况下,还是可以登录SQL Server 2008, 重置SA密码. 1. 如果Builtin\Administrator在SQL Server中还存...
  • gykthh
  • gykthh
  • 2013年02月28日 16:31
  • 6097

数据库连接释放问题引起的“与服务器的连接被重置”

最近在业务系统中写了个下载文件的接口,供公司的其他工具下载业务系统中的文件。结果在下载文件时发现,文件下载了一部分就无法再下载。系统提示“与服务器的连接被重置” 。有时候甚至不会提示 ,IE的保存进度...
  • joke01
  • joke01
  • 2013年07月18日 14:54
  • 1706

VS2015完全重置的方法

vs2015 不知道怎么回事 智能提示 无法显示出函数或属性的说明,如下图 想着 应该是设置的问题 然后再工具-》选项-》里面找了好久都没有找到,不得已只能重置开发环境了,然后度娘了一下,在一...
  • Yu_Wei_123
  • Yu_Wei_123
  • 2017年04月22日 21:27
  • 2290

MySQL重置root用户密码的方法

转自:http://www.xunmeinet.com/help/info.asp?id=45 本教程适用于采用Win2003、WinXP操作系统的迅美VPS和云主机产品。     当...
  • shellching
  • shellching
  • 2016年07月19日 22:01
  • 11204
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:重置二叉树
举报原因:
原因补充:

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