class (object): def buildTree(self, preorder, inorder): """ :type preorder: List[int] :type inorder: List[int] :rtype: TreeNode """ return self.helper(preorder, inorder, 0, len(inorder) - 1, 0, len(inorder) - 1) def helper(self, preorder, inorder, k, l, i, j): if k > len(preorder) - 1 or i > j: return None rootValue = preorder[k] root = TreeNode(rootValue) inorderIndex = inorder.index(rootValue) root.left = self.helper(preorder, inorder, k+1, k+inorderIndex-i-1, i, inorderIndex-1) root.right = self.helper(preorder, inorder, k+inorderIndex+1-i, l, inorderIndex+1, j) return root
|
近期评论