Inorder Postorder

题目描述

解题方法

Solution

class Solution(object):
    def buildTree(self, inorder, postorder):
        """
        :type inorder: List[int]
        :type postorder: List[int]
        :rtype: TreeNode
        """
        if not inorder or not postorder:
            return None
        in_idx = inorder.index(postorder.pop())
        root = TreeNode(inorder[in_idx])
        # 先right再left,因为是不断地从Postorder最后pop
        root.right = self.buildTree(inorder[in_idx+1:], postorder)
        root.left = self.buildTree(inorder[:in_idx], postorder)
        return root

Reference