根据前序遍历和中序遍历,构造二叉树
来源:互联网 发布:网络教育期末考试开考 编辑:程序博客网 时间:2024/05/07 18:35
思路:前序的第一个字母为树的根节点,然后查看中序序列中这个字母的位置,它之前的为左子树,之后的为右子树,然后分别对这两个子树的前序和中序序列做递归操作。
public TreeNode reConstructBinaryTree(int [] pre,int [] in) { int n = pre.length; TreeNode root = new TreeNode(pre[0]); int leftLen = 0; for(leftLen=0;leftLen<n&&pre[0]!=in[leftLen];leftLen++); int rightLen = n - leftLen - 1; int left1[] = new int[leftLen]; int right1[] = new int[rightLen]; int left2[] = new int[leftLen]; int right2[] = new int[rightLen]; for(int i=1;i<=leftLen;i++){ left1[i-1] = pre[i]; left2[i-1] = in[i-1]; } for(int i=0;i<rightLen;i++){ right1[i] = pre[leftLen+i+1]; right2[i] = in[leftLen+i+1]; } if(leftLen>0){ root.left = reConstructBinaryTree(left1,left2); } if(rightLen>0){ root.right = reConstructBinaryTree(right1,right2); } return root; }
0 0
- 根据前序和中序遍历构造二叉树
- 根据前序和中序遍历构造二叉树
- 根据二叉树的前序遍历和中序遍历构造二叉树
- 根据前序遍历和中序遍历树构造二叉树
- 根据前序遍历和中序遍历树构造二叉树
- 根据前序遍历序列和中序遍历序列构造二叉树
- 根据前序遍历和中序遍历结果构造二叉树
- 根据前序遍历序列和中序遍历序列构造二叉树算法
- 根据前序遍历和中序遍历构造二叉树
- 根据前序遍历和中序遍历,构造二叉树
- 根据前序遍历和中序遍历构造二叉树 java
- 根据前序遍历序列和中序遍历序列构造二叉树算法
- 根据前序遍历序列和中序遍历序列构造二叉树
- 根据前序遍历和中序遍历结果构造二叉树
- 根据前序遍历序列和中序遍历序列构造二叉树算法
- 树—根据中序遍历和后序遍历(或者前序和中序)构造二叉树
- 根据前序和中序遍历结果构造二叉树
- 根据前序和中序遍历结果构造二叉树
- 数据表的设计之加type
- Android--单例模式
- [iOS]查找数组NSArray中是否包含指定的元素
- 新特征-原子量
- Git常用命令
- 根据前序遍历和中序遍历,构造二叉树
- nefu 66 最左边的数
- XDU 1149 卡尔的技能 II (容斥 多重集组合 阶乘逆元)
- openfire服务器的使用
- 进入开发阶段,你准备好了吗?
- linux下如何查找函数所在的库文件
- 欢迎使用CSDN-markdown编辑器
- 练习三 1013
- 线程的基本总结(1)