# 代码随想录训练营第III期--021--python
# 腿伤长时间无法运动,感觉情绪低落,连续两天打游戏,感觉自己堕落了;
# 530.二叉搜索树的最小绝对差
class Solution:
def getMinimumDifference(self, root: Optional[TreeNode]) -> int:
self.ans = 999
self.pre = 999
def dfs(root):
if not root: return
dfs(root.left)
self.ans = min(self.ans, abs(self.pre - root.val))
self.pre = root.val
dfs(root.right)
dfs(root)
return self.ans
# 501.二叉搜索树中的众数
def findMode(self, root: Optional[TreeNode]) -> List[int]:
pp = collections.defaultdict(int)
def dfs(root):
if not root: return
pp[root.val] += 1
dfs(root.left)
dfs(root.right)
dfs(root)
mm = max(pp.values())
res = []
for i in pp.keys():
if pp[i] == mm:
res.append(i)
return res
# 236. 二叉树的最近公共祖先
# 没理解,先保存了
def lowestCommonAncestor(self, root: 'TreeNode', p: 'TreeNode', q: 'TreeNode') -> 'TreeNode':
if root == p or root == q:
return root
if root:
left = self.lowestCommonAncestor(root.left,p,q)
right = self.lowestCommonAncestor(root.right,p,q)
if left and right:
return root
elif not left:
return right
else:
return left
return None
代码随想录训练营第III期--021--python
最新推荐文章于 2024-07-23 14:36:35 发布