Minimal tree
1class TreeNode:
2 def __init__(self, val=0, left=None, right=None):
3 self.val = val
4 self.left = left
5 self.right = right
6
7class Solution:
8 def minimalTree(self, nums, l, r):
9 if l > r: return None
10 middle = l + (r - l) // 2
11 val = nums[middle]
12 n = TreeNode(val)
13 n.left = self.minimalTree(nums, l, middle - 1)
14 n.right = self.minimalTree(nums, middle + 1, r)
15 return n