提交 8b9c83ad 编写于 作者: L laozhang

update python 105

上级 c5a4d291
......@@ -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)
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册