2023-03-13 对称二叉树

class Solution:
def isSymmetric(self, root: TreeNode) -> bool:
if not root:
return True
return self.compare(root.left, root.right)

def compare(self, left, right):
    #首先排除空节点的情况
    if left == None and right != None: return False
    elif left != None and right == None: return False
    elif left == None and right == None: return True
    #排除了空节点,再排除数值不相同的情况
    elif left.val != right.val: return False
    
    #此时就是:左右节点都不为空,且数值相同的情况
    #此时才做递归,做下一层的判断
    outside = self.compare(left.left, right.right) #左子树:左、 右子树:右
    inside = self.compare(left.right, right.left) #左子树:右、 右子树:左
    isSame = outside and inside #左子树:中、 右子树:中 (逻辑处理)
    return isSame
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容