class Solution:
def buildTree(self, inorder: List[int], postorder: List[int]) -> TreeNode:
if len(inorder) == 0 or len(postorder) == 0:
return
root = TreeNode(postorder[-1])
mid = inorder.index(postorder[-1])
#以mid为界划分中序
in_l = inorder[:mid]
in_r = inorder[mid+1:]
#以mid为界划分后序
post_l = postorder[:len(in_l)]
post_r = postorder[len(in_l):-1]
#递归构造左右子树
root.left = self.buildTree(in_l, post_l)
root.right = self.buildTree(in_r, post_r)
return root