剑指offer-面试题6:重建二叉树
2016-06-03 14:14
260 查看
题目
输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。解
public static TreeNode buildTree(int[] preOrder, int start,int[] inOrder,int end,int length){ //参数验证 if(preOrder==null||preOrder.length==0 ||inOrder==null||inOrder.length==0||length<=0){ return null; } //建立子树根节点 int value=preOrder[start]; TreeNode root=new TreeNode(value); //递归终止条件:子树只有一个节点 if(length==1){ return root; } //分拆子树的左子树和右子树 int i=0; while(i<length){ if(value==inOrder[end-i]){ break; } i++; } //建立子树的左子树 root.left=buildTree(preOrder,start+1,inOrder,end-1-i,length-1-i); root.right=buildTree(preOrder,start+length-i,inOrder,end,i); return root; }
相关文章推荐
- 一个关于if else容易迷惑的问题
- AVL树-自平衡二叉查找树(Java实现)
- 一道sql面试题附答案
- C# 超高面试题收集整理
- C语言二叉树的非递归遍历实例分析
- 使用C语言构建基本的二叉树数据结构
- 一波二叉树遍历问题的C++解答实例分享
- 举例讲解C语言程序中对二叉树数据结构的各种遍历方式
- C++非递归队列实现二叉树的广度优先遍历
- PHP实现的线索二叉树及二叉树遍历方法详解
- C#使用前序遍历、中序遍历和后序遍历打印二叉树的方法
- 人人网javascript面试题 可以提前实现下
- PHP中设置一个严格30分钟过期Session面试题的4种答案
- 据说是雅虎的一份PHP面试题附答案
- Android开发 旋转屏幕导致Activity重建解决方法
- php牛逼的面试题分享
- 一套比较完整的javascript面试题(部分答案)
- 10个经典的Java main方法面试题
- C#非递归先序遍历二叉树实例
- 小米公司JavaScript面试题