宇宙无敌飞天遁地大木木 2025-03-26 10:41 采纳率: 32.5%
浏览 2
已结题

关于#lc-110#的问题:nonlocal ans


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

  • 写回答

3条回答 默认 最新

  • 道友老李 JWE233286一种基于机器视觉的水表指针读数识别及修正的方法 专利发明者 2025-03-26 10:42
    关注
    让【道友老李】来帮你解答,本回答参考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
    

    你可以使用该代码来判断给定的二叉树是否是平衡的。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 4月3日
  • 已采纳回答 3月26日
  • 创建了问题 3月26日