From 8b9c83adb5190955774ab1220be6511a668f448a Mon Sep 17 00:00:00 2001 From: laozhang <1044985343@qq.com> Date: Fri, 19 Jun 2020 21:24:27 +0800 Subject: [PATCH] update python 105 --- python-leetcode/solution/tree/leetcode_105_.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/python-leetcode/solution/tree/leetcode_105_.py b/python-leetcode/solution/tree/leetcode_105_.py index 61bddde3..6fa85d52 100644 --- a/python-leetcode/solution/tree/leetcode_105_.py +++ b/python-leetcode/solution/tree/leetcode_105_.py @@ -20,3 +20,17 @@ class Solution: root.left = self.buildTree(preorder[1:k + 1], inorder[:k]) root.right = self.buildTree(preorder[k + 1:], inorder[k + 1:]) return root + + ##δΌ˜εŒ–η‰ˆ + def buildTree(self, preorder: List[int], inorder: List[int]) -> TreeNode: + def helper(preorder: List[int], inorder: List[int], preleft: int, preright: int, inleft: int, inright: int): + if inleft > inright: + return None + val = preorder[preleft] + mid = inorder.index(val) + root = TreeNode(val) + root.left = helper(preorder, inorder, preleft + 1, mid - inleft + preleft, inleft, mid - 1) + root.right = helper(preorder, inorder, mid - inleft + preleft + 1, preright, mid + 1, inright) + return root + + return helper(preorder, inorder, 0, len(preorder) - 1, 0, len(inorder) - 1) -- GitLab