public Node buildTree(int[] inorder, int[] postorder, int start, int end, int index) {
        if (start > end) {
            return null;
        }

        int i;
        for (i = start; i <= end; i++) {
            if (postorder[index] == inorder[i]) {
                break;
            }
        }

        Node tn = Node.newNode(postorder[index]);
        tn.left = buildTree(inorder, postorder, start, i - 1, index - (end - i + 1));
        tn.right = buildTree(inorder, postorder, i + 1, end, index - 1);
        return tn;
    }
Given inorder and postorder traversal of a tree, construct the binary tree.

https://leetcode.com/problems/construct-binary-tree-from-inorder-and-postorder-traversal/
src/com/interview/tree/ContructTreeFromInorderPostOrder.java