对称二叉树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有点疑问

它之前的表达是没错的,就像事件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) 即左空且右空,即左右都空,它原来的注释正确。

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^