美文网首页
python实现leetcode之101. 对称二叉树

python实现leetcode之101. 对称二叉树

作者: 深圳都这么冷 | 来源:发表于2021-09-24 10:41 被阅读0次

    解题思路

    空树是对称的
    只有一个节点也是对称的
    如果左子树和右子树是镜像,整棵树是对称的

    两棵树是镜像,就是
    1.根节点值一样
    2.左树的左子树是右树的右子树的镜像
    3.左树的右子树是右树的左子树的镜像
    三者都成立才是

    代码

    101. 对称二叉树

    # class TreeNode(object):
    #     def __init__(self, x):
    #         self.val = x
    #         self.left = None
    #         self.right = None
    
    class Solution(object):
        def isSymmetric(self, root):
            """
            :type root: TreeNode
            :rtype: bool
            """
            if not root:
                return True
            return mirror(root.left, root.right)
        
    
    def mirror(x, y):
        if not x and not y:
            return True
        elif not x or not y:
            return False
        else: # x and y
            return x.val == y.val and mirror(x.left, y.right) and mirror(x.right, y.left)
    
    效果图

    相关文章

      网友评论

          本文标题:python实现leetcode之101. 对称二叉树

          本文链接:https://www.haomeiwen.com/subject/atxzgltx.html