输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。

解题思路:其实这个题目不难,但是没有想到呀,居然败在了一个Arrays.binarySearch的使用上面,Arrays.binarySearch能够用于排序之后的数据的查找,无序的数组查找元素根本就不能使用呀,天了噜。
主要是了结前序遍历和中序遍历的特性即可。要理解树的局部重复的特性,对于左右子树的重建可以利用递归的算法进行完成。

import java.util.Arrays;
/**
 * Definition for binary tree
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
public class Solution {
    public TreeNode help(int [] pre,int preS, int preE, int [] in, int inS, int inE){