654. 最大二叉树
解法一:递归
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
def constructMaximumBinaryTree(self, nums: List[int]) -> TreeNode:
return self.helper(nums, 0, len(nums)-1) #辅助函数
def helper(self, nums, left, right):
if left > right: #递归出口
return None
i = nums.index(max(nums[left:right+1])) #找最大值下标
root = TreeNode(nums[i])
root.left = self.helper(nums, left, i-1)
root.right = self.helper(nums, i+1, right)
return root解法二:c++
最后更新于