Construct a tree given pre and inorder or post and inorder
The algorithm looks good to me. Regarding the code, here are a few points:


You don't need to overload the function. Semantically it's a tree builder, and probably the private function can be termed as buildTree.
The following condition should throw the IllegalStateException instead of IllegalArgumentException:

if (parentPosInorder &gt; hb) {
    throw new IllegalArgumentException("Your tree is not accurate");
}

You can make the code generic by using a generic data type for the node value.  Accordingly, the API will be extensible enough.