# Definition for a binary tree node.
# class TreeNode(object):
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution(object):
def constructMaximumBinaryTree(self, nums):
"""
:type nums: List[int]
:rtype: TreeNode
"""
return self.buildTree(nums)
def buildTree(self, nums):
if nums == []:
return None
loc = 0
max_num = 0
for i in range(len(nums)):
if nums[i] > max_num:
max_num = nums[i]
loc = i
new_node = TreeNode(max_num)
new_node.left = self.buildTree(nums[:loc])
new_node.right = self.buildTree(nums[loc+1:])
return new_node
递归 二叉树