Inorder and preorder

题目描述

解题方法

Solution

class Solution(object):
    def buildTree(self, preorder, inorder):
        """
        :type preorder: List[int]
        :type inorder: List[int]
        :rtype: TreeNode
        """
        if not preorder or not inorder:
            return None
        ind = inorder.index(preorder.pop(0))
        root = TreeNode(inorder[ind])
        # 先left后right, 因为是preorder,不断从头部Pop出去的
        root.left = self.buildTree(preorder, inorder[0:ind])
        root.right = self.buildTree(preorder, inorder[ind+1:])
        return root

Reference