这个没啥好讲的,参考主页前文leetcode105/106构造二叉树
class Solution:
def constructMaximumBinaryTree(self, nums: List[int]) -> Optional[TreeNode]:
def recursion_build(nums):
if not nums:
return
max_num = 0
index = 0
for (i, num) in enumerate(nums):
if num > max_num:
max_num = num
index = i
root = TreeNode(max_num)
left_nums = nums[:index]
right_nums = nums[index+1:]
root.left = recursion_build(left_nums)
root.right = recursion_build(right_nums)
return root
return recursion_build(nums)