101. 对称二叉树

题目

101. 对称二叉树(简单)

给你一个二叉树的根节点 root,检查它是否轴对称。

示例 1:

输入:

[1,2,2,3,4,4,3]

输出:

true

示例 2:

输入:

[1,2,2,null,3,null,3]

输出:

false

提示:

  • 树中节点数目在范围 [1, 1000]
  • -100 <= Node.val <= 100

思路

「轴对称」转化为递归比较镜像子树对:check(q, p) 要求两棵子树要么同为空,要么值相等且 q 的左子树p 的右子树q 的右子树p 的左子树 也互为镜像。从根的左右孩子开始递归即可。

代码

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:
    def isSymmetric(self, root: Optional[TreeNode]) -> bool:
        def check(q, p):
            if (not q and not p):
                return True
            if (not q or not p):
                return False
            return p.val == q.val and check(p.left, q.right) and check(p.right, q.left)

        return check(root.left, root.right)

101. 对称二叉树
https://mingsm17518.github.io/2026/09/14/刷题笔记/Hot100/101. 对称二叉树/
作者
Ming
发布于
2026年9月14日
更新于
2026年9月14日
许可协议