数据结构之对称二叉树

(leetcode刷题)

对称二叉树

  题目: 给定一个二叉树,检查它是否是镜像对称的。
  示例: 在这里插入图片描述

方法

  • 关键思路是二叉树的对称如何判断:可以发现,拥有相同值的节点的左子树的值=对应节点右子树的值,该节点的右子树的值=对应节点左子树的值。
  • 然后对每个子树进行递归
class Solution:
    def isSymmetric(self, root: TreeNode) -> bool:
        if not root:
            return True
        else:
            return self.leqr(root.left, root.right)

    def leqr(self, left, right):
        if not left and not right: return True
        if not left or not right: return False
        if left.val == right.val:
            return self.leqr(left.left, right.right) and self.leqr(left.right, right.left)
        else:
            return False

在这里插入图片描述

发布了60 篇原创文章 · 获赞 2 · 访问量 1465

猜你喜欢

转载自blog.csdn.net/qq_40160983/article/details/104975929