diff --git a/105. Construct Binary Tree from Preorder and Inorder Traversal.py b/105. Construct Binary Tree from Preorder and Inorder Traversal.py new file mode 100644 index 0000000..f898a73 --- /dev/null +++ b/105. Construct Binary Tree from Preorder and Inorder Traversal.py @@ -0,0 +1,21 @@ +# Definition for a binary tree node. +# class TreeNode: +# def __init__(self, x): +# self.val = x +# self.left = None +# self.right = None + + +class Solution: + def buildTree(self, preorder, inorder): + """ + :type preorder: List[int] + :type inorder: List[int] + :rtype: TreeNode + """ + if not preorder: return None + i = inorder.index(preorder[0]) + root = TreeNode(preorder[0]) + root.left = self.buildTree(preorder[1:1 + i], inorder[:i]) + root.right = self.buildTree(preorder[1 + i:], inorder[i + 1:]) + return root diff --git a/Construct Binary Tree from Inorder and Postorder Traversal.py b/Construct Binary Tree from Inorder and Postorder Traversal.py deleted file mode 100644 index c3abf11..0000000 --- a/Construct Binary Tree from Inorder and Postorder Traversal.py +++ /dev/null @@ -1,21 +0,0 @@ -# Definition for a binary tree node. -# class TreeNode: -# def __init__(self, x): -# self.val = x -# self.left = None -# self.right = None - -class Solution: - def buildTree(self, inorder, postorder): - """ - :type inorder: List[int] - :type postorder: List[int] - :rtype: TreeNode - """ - if not postorder: - return None - i = inorder.index(postorder[-1]) - root=postorder[-1] - root.left=self.buildTree(inorder[:i], postorder[:i]) - root.right=self.buildTree(inorder[i+1:],postorder[i:-1]) - return root