重建二叉树(根据前序和中序遍历结果)
2017-12-18 16:50
295 查看
public TreeNode reConstructBinaryTree(int [] pre,int [] in) { return build(pre,0,pre.length-1,in,0,in.length-1); } public TreeNode build(int[]preorder,int start1,int end1,int[]inorder,int start2,int end2){ if(start1>end1||start2>end2) return null; int rootval=preorder[start1]; //前序第一个结点为根 System.out.print(rootval+" "); TreeNode root=new TreeNode(rootval); int index=indexfindinorder(inorder,start2,end2,rootval);//在中序找到该根节点下标 root.left=build(preorder,start1+1,index+start1,inorder,start2,start2+index-1);//左子树 root.right=build(preorder,index+start1+1,end1,inorder,start2+index+1,end2);//右子树 return root; } private int indexfindinorder(int[] inorder, int start, int end,int rootval) {//在中序找到该根节点下标 int count=0; for(int i=start;i<=end;i++){ if(inorder[i]==rootval)return count; count++; } return -1; }
相关文章推荐
- 根据前序和中序遍历结果重建二叉树
- 根据前序和中序遍历结果重建二叉树
- 第四题:根据前序和中序遍历结果重建二叉树(Arrays常用方法)
- 重建二叉树---根据前序和中序遍历结果重建二叉树
- Python练手之根据前序和中序&根据中序和后序重建二叉树,输出前序、中序和后序遍历结果
- 重建二叉树---根据前序和中序遍历结果重建二叉树
- 根据二叉树的前序遍历和中序遍历结果重建出该二叉树
- 根据二叉树前序遍历和中序遍历的结果,重建出该二叉树并后序遍历之 java代码
- 二叉树问题-根据前序遍历结果和中序遍历结果得出后序遍历结果
- 根据前序遍历和中序遍历结果重建二叉树(递归方法)
- 根据二叉树的遍历结果重建二叉树
- 【面试题】剑指Offer-6-根据前序和中序遍历重建二叉树
- 根据前序遍历和中序遍历结果重建二叉树(递归方法)
- 根据前序和中序遍历重建二叉树
- 根据前序和中序遍历的结果建立二叉树
- 已知二叉树的前序遍历结果和中序遍历结果,请重建原来的二叉树
- 剑指:根据输入的前序和中续遍历序列重建二叉树
- 重建二叉树,输入某二叉树的前序遍历和中序遍历的结果,重建出二叉树,假设输入的前序和中序遍历结果中不含重复的数字
- 根据前序和中序的遍历序列重建二叉树
- 根据二叉树的前序遍历和中序遍历的结果重建出该二叉树