class TreeNode:
def __init__(self, x):
self.val = x
self.left = None
self.right = None
class Solution:
def mergeTrees(self, t1, t2):
"""
:type t1: TreeNode
:type t2: TreeNode
:rtype: TreeNode
"""
if not t1:
return t2
if not t2:
return t1
t1.val += t2.val
t1.left = self.mergeTrees(t1.left, t2.left)
t1.right = self.mergeTrees(t1.right, t2.right)
return t1
class Solution:
def maxDepth(self, root):
"""
:type root: TreeNode
:rtype: int
"""
if root == None:
return 0
ldepth = Solution.maxDepth(self, root.left)
rdepth = Solution.maxDepth(self, root.right)
return max(ldepth, rdepth) + 1
class Solution:
def sortedArrayToBST(self, nums):
"""
:type nums: List[int]
:rtype: TreeNode
"""
if len(nums) == 0:
return None
if len(nums) == 1:
return TreeNode(nums[0])
if len(nums) == 2:
tree = TreeNode(nums[1])
tree.left = TreeNode(nums[0])
return tree
root = len(nums)//2
tree = TreeNode(nums[root])
tree.left = self.sortedArrayToBST(nums[0:root])
tree.right = self.sortedArrayToBST(nums[root+1:])
return tree