重建二叉树
来源:互联网 发布:大数据产业园怎么样 编辑:程序博客网 时间:2024/05/19 13:17
题目:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序表里和中序遍历的结果中不含有重复的数字。
/*** * 根据一个二叉树的前序和中序遍历序列将其重建出来 * @author Administrator * */public class BuildTree {class TreeNode {TreeNode left;TreeNode right;int value;public TreeNode(int value) {this.value = value;}}public TreeNode buildTree(int[] preorder, int pbegin, int pend, int[] inorder, int ibegin, int iend) {TreeNode root = null;if (pbegin == pend || ibegin == iend)return root;else {root = new TreeNode(preorder[pbegin]);int i = ibegin;for (; i < iend; i++) {if (inorder[i] == preorder[pbegin])break;}root.left = buildTree(preorder, pbegin + 1, pbegin + i + 1 - ibegin, inorder, ibegin, i);root.right = buildTree(preorder, pbegin + i + 1 - ibegin, pend, inorder, i + 1, iend);}return root;}}前序遍历序列的第一个数即为根节点的值。对中序序列进行扫描,找到和这个值相等的数,可以确定根节点的位置,这个位置左边是根节点的左子树,右边是根节点的右子树,由此可以分别得到左右子树的前序遍历、中序遍历序列,可以通过递归完成整个树的构建。
0 0
- 3.9重建二叉树
- 重建二叉树
- 二叉树重建
- 二叉树重建
- 二叉树的重建
- 重建二叉树
- 重建二叉树
- 重建二叉树
- 重建二叉树
- 重建二叉树
- 重建二叉树
- 重建二叉树
- 重建二叉树
- 二叉树重建
- 二叉树重建
- 重建二叉树
- 重建二叉树
- 重建二叉树
- 自定义控件-类表盘体重选择器的实现
- 2015 去哪儿校招--对字符数组中元素包含某个单词个数的排序
- order by与索引
- 数据库
- Android 内存泄漏总结
- 重建二叉树
- c++ 栈区 堆区 常量区
- startActivity流程
- Android的文件系统结构
- 常见的页面跳转的方法
- OC相关资料
- JVM虚拟机-GC(对象)
- 最近遇到window的坑
- SDWebImage详解