def buildTree(self, inorder: List[int], postorder: List[int]) -> TreeNode:
        def helper(inorderL, inorderR):
            # base case
            if inorderL >= inorderR:
                return None
            nonlocal postorder
            curr = postorder.pop()
            root = TreeNode(curr)
            currPos = inorderMap[curr]
            root.right = helper(currPos+1, inorderR)
            root.left = helper(inorderL, currPos)
            return root