if not nums: return
MaxVal = -1
for i in range(len(nums)):
if nums[i] > MaxVal:
MaxVal = i
Root = TreeNode(nums[MaxVal])
Root.left = self.constructMaximumBinaryTree(nums[:MaxVal])
Root.right = self.constructMaximumBinaryTree(nums[MaxVal+1:])
return Root
LeetCode.617 合并二叉树
前序遍历
if not root1: return root2
if not root2: return root1
root1.val += root2.val
root1.left = self.mergeTrees(root1.left, root2.left)
root1.right = self.mergeTrees(root1.right, root2.right)
return root1
LeetCode.700 二叉搜索树中的搜索
前序遍历
if not root: return
if root.val == val: return root
return self.searchBST(root.left if root.val > val else root.right, val)
LeetCode.98 验证二叉搜索树
中序遍历
def inorder(root):
if not root: return
inorder(root.left)
res.append(root.val)
inorder(root.right)
res = []
inorder(root)
return all(res[i] < res[i+1] for i in range(len(res)-1))