题目1
题解1
class Solution:
def merge(self, intervals: List[List[int]]) -> List[List[int]]:
intervals.sort(key = lambda x: x[0])
res = []
for i in range(len(intervals)):
if i+1 < len(intervals) and inte rvals[i+1][0] <= intervals[i][1]:
if intervals[i][1] < intervals[i+1][1]:
intervals[i+1][0] = intervals[i][0]
else:
intervals[i+1] = intervals[i]
else:
res.append(intervals[i])
return res
题目2
题解2
class Solution:
def Depth(self, root: TreeNode) -> int:
if root is None:
return 0
return 1 + max(self.Depth(root.left), self.Depth(root.right))
def isBalanced(self, root: TreeNode) -> bool:
if not root:
return True
if abs(self.Depth(root.left) - self.Depth(root.right)) > 1:
return False
return self.isBalanced(root.left) and self.isBalanced(root.right)
题目3
题解3
class Solution:
def searchBST(self, root: TreeNode, val: int) -> TreeNode:
if root is None:
return None
else:
if root.val == val:
return root
elif root.val >val:
return self.searchBST(root.left,val)
else:
return self.searchBST(root.right,val)
附上题目链接:
题目1链接
题目2链接
题目3链接