021 · Symmetric Tree

algorithm
Published

May 26, 2026

Problem

给定一棵二叉树的根节点 root

请判断这棵二叉树是否是轴对称的。

一棵二叉树是轴对称的,意思是它的左子树和右子树互为镜像。

也就是说,不只是左右两边的节点值要相同,节点出现的位置也要对称:

  • 左子树的左节点,需要和右子树的右节点对应
  • 左子树的右节点,需要和右子树的左节点对应

例如,下面这棵树是对称的:

        1
       / \
      2   2
     / \ / \
    3  4 4  3

从中间看,左右两边像镜子一样对应。

下面这棵树不是对称的:

        1
       / \
      2   2
       \   \
        3   3

虽然左右两边都有节点值 23,但两个 3 都在右侧位置,没有形成镜像结构。

Examples

示例 1

Input:  root = [1,2,2,3,4,4,3]
Output: true

解释:左子树和右子树互为镜像,所以这棵树是对称的。

示例 2

Input:  root = [1,2,2,null,3,null,3]
Output: false

解释:两个值为 3 的节点位置不对称,所以这棵树不是对称的。

示例 3

Input:  root = []
Output: true

解释:空树可以看作是对称的。

Constraints

  • 树中节点的数量范围是 \([0, 1000]\)
  • \(-100 \leq\) Node.val \(\leq 100\)