leetcode Construct Binary Tree from Preorder and Inorder Traversal

原创 2016年06月01日 17:51:48

题目链接

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
public class Solution {
      public TreeNode buildTree(int[] preorder, int[] inorder) {
        if(inorder==null||inorder.length==0)
        {
            return null;
        }


        TreeNode root=new TreeNode(preorder[0]);
        build(root, inorder, 0, inorder.length-1, preorder, 0, preorder.length-1);

        return root;
    }


    public void build(TreeNode root,int[] inorder, int ins,int ine,int[] preorder,int pres,int pree)
    {
        int parentIndexInMiddle=ins;

        while(inorder[parentIndexInMiddle]!=root.val)
        {
            parentIndexInMiddle++;
        }

        int leftCount=parentIndexInMiddle-ins;



        if(leftCount>0)
        {
            int leftRootIndexInPre=pres+1;
            root.left=new TreeNode(preorder[leftRootIndexInPre]);
            build(root.left, inorder, ins, parentIndexInMiddle-1, preorder, leftRootIndexInPre, pres+1+leftCount-1);
        }

        int rightCount=ine-parentIndexInMiddle;
        if(rightCount>0)
        {
            int rightRootIndexInpre=pree-rightCount+1;
            root.right=new TreeNode(preorder[rightRootIndexInpre]);
            build(root.right, inorder, parentIndexInMiddle+1, ine, preorder, rightRootIndexInpre, pree);
        }
    }
}

【LeetCode】105. Construct Binary Tree from Preorder and Inorder Traversal 解题报告

转载请注明出处:http://blog.csdn.net/crazy1235/article/details/51471280Subject 出处:https://leetcode.com/pro...
  • crazy1235
  • crazy1235
  • 2016年06月01日 23:42
  • 5895

LeetCode 105:Construct Binary Tree from Preorder and Inorder Traversal

LeetCode 105: Given preorder and inorder traversal of a tree, construct the binary tree. 给定一个二叉树的...
  • sunao2002002
  • sunao2002002
  • 2015年05月20日 23:09
  • 1044

C++详解Leetcode:105. Construct Binary Tree from Preorder and Inorder Traversal

原题思路通过二叉树的前序遍历和中序遍历来构建二叉树,通过递归可以很容易的解决这个问题,在遇到二叉树的问题,应该习惯先画图再来解决code/** * Definition for a binary t...
  • u014265347
  • u014265347
  • 2017年07月30日 17:34
  • 310

【LeetCode-面试算法经典-Java实现】【105-Construct Binary Tree from Preorder and Inorder Traversal(构造二叉树)】

【106-Construct Binary Tree from Preorder and Inorder Traversal(通过前序和中序遍历构造二叉树)】【LeetCode-面试算法经典-Java...
  • DERRANTCM
  • DERRANTCM
  • 2015年08月09日 06:37
  • 2513

LeetCode Construct Binary Tree from Inorder and Postorder Traversal 思考分析过程分享

思考: 1 画图: 把二叉树和其中序和后序的序列都画出来(这个很重要,我以前有时候总是凭空想象,结果脑子一片空白) 2 把问题写下来:怎么构造一个节点? 3 观察: 到底有什么特点是可以利用来解题的呢...
  • kenden23
  • kenden23
  • 2013年11月12日 13:20
  • 2290

leetcode笔记:Construct Binary Tree from Preorder and Inorder Traversal

这道题考察了先序和中序遍历,先序是先访问根节点,然后访问左子树,最后访问右子树;中序遍历是先遍历左子树,然后访问根节点,最后访问右子树。...
  • liyuefeilong
  • liyuefeilong
  • 2015年11月30日 23:54
  • 1308

[leetcode-105]Construct Binary Tree from Preorder and Inorder Traversal(java)

问题描述: Given preorder and inorder traversal of a tree, construct the binary tree.分析:这道题实际上是考察如何从前序遍历...
  • zdavb
  • zdavb
  • 2015年08月11日 15:09
  • 276

[LeetCode][Java] Construct Binary Tree from Inorder and Postorder Traversal

题目: Given inorder and postorder traversal of a tree, construct the binary tree. Note: You m...
  • Evan123mg
  • Evan123mg
  • 2015年07月20日 21:23
  • 646

[JAVA]LeetCode105 Construct Binary Tree from Preorder and Inorder Traversal

根据前序遍历和中序遍历,构建二叉树。假设树中不存在相同的节点
  • fumier
  • fumier
  • 2015年03月29日 10:39
  • 740

Given preorder and inorder traversal of a tree, construct the binary tree.

题目:利用先序遍历和中序遍历,构造一个二叉树! 例如: Inorder Traversal:{3,1,7,4,0,5,8,2,6}; Preorder Traversal:{0,1,3,4,7,2,5...
  • yx2008302080
  • yx2008302080
  • 2014年12月04日 23:07
  • 552
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:leetcode Construct Binary Tree from Preorder and Inorder Traversal
举报原因:
原因补充:

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