Construct Binary Tree from Inorder and Postorder Traversal# JobHunting - 待字闺中
t*n
1 楼
死活runtime error啊,在本地调试是可以的啊...囧了,有点怀疑是不是leetcode的问
题了..
Last executed input
[2,1], [2,1]
下面这个实现有什么问题么
public class Solution {
public TreeNode buildTree(int[] inorder, int[] postorder) {
if(inorder.length != postorder.length
|| inorder.length==0){
return null;
}
int rootVal = postorder[postorder.length-1];
int inorderRootPos = Arrays.binarySearch(inorder, rootVal);
TreeNode rootNode = new TreeNode(rootVal);
rootNode.left = buildTree(Arrays.copyOfRange(inorder, 0,
inorderRootPos), Arrays.copyOfRange(postorder, 0, inorderRootPos));
rootNode.right = buildTree(Arrays.copyOfRange(inorder,
inorderRootPos+1, inorder.length), Arrays.copyOfRange(postorder,
inorderRootPos, postorder.length-1));
return rootNode;
}
}
题了..
Last executed input
[2,1], [2,1]
下面这个实现有什么问题么
public class Solution {
public TreeNode buildTree(int[] inorder, int[] postorder) {
if(inorder.length != postorder.length
|| inorder.length==0){
return null;
}
int rootVal = postorder[postorder.length-1];
int inorderRootPos = Arrays.binarySearch(inorder, rootVal);
TreeNode rootNode = new TreeNode(rootVal);
rootNode.left = buildTree(Arrays.copyOfRange(inorder, 0,
inorderRootPos), Arrays.copyOfRange(postorder, 0, inorderRootPos));
rootNode.right = buildTree(Arrays.copyOfRange(inorder,
inorderRootPos+1, inorder.length), Arrays.copyOfRange(postorder,
inorderRootPos, postorder.length-1));
return rootNode;
}
}