Construct Binary Tree from Inorder and Postorder Traversal

不知道为什么错了。。。eclipse上明明是正确的啊 leetcode上就显示runtime error
/**
 * Definition for binary tree
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
public class Solution {
    public TreeNode buildTree(int[] inorder, int[] postorder) {
        // Start typing your Java solution below
        // DO NOT write main() function
        int length = inorder.length;
        if (length <= 0)
            return null;
        int val = postorder[postorder.length-1];
        TreeNode tree = new TreeNode(val);
        int index = Arrays.binarySearch(inorder, val);
        int[] leftin = (0<index Arrays.copyOfRange(inorder, 0, index);
        int[] rightin = (index + 1 < length ? Arrays.copyOfRange(inorder, index + 1, length) : null);
        
        int templength = leftin.length;
        int[] leftpost = Arrays.copyOfRange(inorder, 0, templength);
        int[] rightpost = Arrays.copyOfRange(inorder, templength, length-1);
        tree.left = buildTree(leftin, leftpost);
        tree.right = buildTree(rightin, rightpost);
        return tree;
    }
}

大家不吝赐教啊,多谢多谢 >_<

你可能感兴趣的:(binary)