匿名用户2022 2023-03-02 21:20 采纳率: 76.2%
浏览 17
已结题

对称二叉树Python解法

# 深度优先搜索
class Solution:
    def isSymmetric(self, root: Optional[TreeNode]) -> bool:
        if not root: # 空树
            return True
        def DFS(left, right):
            if not (left or right): # 左右子树,都为空
                return True
            if not (left and right): # 左右子树,一边为空
                return False
            if left.val != right.val:
                return False
            return DFS(left.left, right.right) and DFS(left.right, right.left)
        return DFS(root.left, root.right)

第五行和第七行我在想and和or是不是弄反了
还有对left和right有点疑问

  • 写回答

2条回答 默认 最新

  • 元气少女缘结神 2023-03-03 09:21
    关注

    它之前的表达是没错的,就像事件A=“今天会下雨” ,事件B=“明天会下雨”,虽然A or B表示今天或明天下雨即今明两天至少1天下雨。
    如果加个not即 not (A or B) 就表示“今明两天至少1天下雨”的反面事件-------也就是今明两天都不下雨。可以理解成not (A or B)=(not A) and (not B)
    所以它原来的not (left or right)=(not left) and (not right) 即左空且右空,即左右都空,它原来的注释正确。

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

报告相同问题?

问题事件

  • 系统已结题 3月11日
  • 已采纳回答 3月3日
  • 修改了问题 3月2日
  • 创建了问题 3月2日

悬赏问题

  • ¥15 微信会员卡接入微信支付商户号收款
  • ¥15 如何获取烟草零售终端数据
  • ¥15 数学建模招标中位数问题
  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?