LEETCODE 105.Construct Binary Tree from Preorder and Inorder Traversal
Given preorder and inorder traversal of a tree, construct the binary tree.
// An highlighted block
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution
{
public static int pre;
public TreeNode buildTree(int[] preorder, int[] inorder)
{
pre=0;
return build(0, preorder.length-1, preorder, inorder);
}
public TreeNode build(int left, int right, int[] preorder, int[] inorder)
{
TreeNode root=null;
if(left<=right)
{
int in=left;
for(int i=left;i<=right;i++)
{
if(inorder[i]==preorder[pre])
{
in=i;
break;
}
}
root=new TreeNode(preorder[pre]);
pre++;
root.left=build(left, in-1,preorder,inorder);
root.right=build(in+1, right, preorder, inorder);
}
return root;
}
}