class Solution:
def isBalanced(self, root: Optional[TreeNode]):
ans = True
def dfs(node: Optional[TreeNode]) -> int:
nonlocal ans
if not node:
return 0
l = dfs(node.left) + 1
r = dfs(node.right) + 1
if abs(l - r) > 1:
ans = False
return max(l, r)
dfs(root)
return ans
关于#lc-110#的问题:nonlocal ans
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
3条回答 默认 最新
关注让【道友老李】来帮你解答,本回答参考gpt编写,并整理提供,如果还有疑问可以点击头像关注私信或评论。
如果答案让您满意,请采纳、关注,非常感谢!
这段代码是用来判断一个二叉树是否是平衡的(即左右子树高度差不超过1),返回True或False。 实现代码如下:from typing import Optional class TreeNode: def __init__(self, val=0, left=None, right=None): self.val = val self.left = left self.right = right class Solution: def isBalanced(self, root: Optional[TreeNode]) -> bool: ans = True def dfs(node: Optional[TreeNode]) -> int: nonlocal ans if not node: return 0 l = dfs(node.left) + 1 r = dfs(node.right) + 1 if abs(l - r) > 1: ans = False return max(l, r) dfs(root) return ans你可以使用该代码来判断给定的二叉树是否是平衡的。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报