021 · Symmetric Tree
algorithm
Problem
给定一棵二叉树的根节点 root。
请判断这棵二叉树是否是轴对称的。
一棵二叉树是轴对称的,意思是它的左子树和右子树互为镜像。
也就是说,不只是左右两边的节点值要相同,节点出现的位置也要对称:
- 左子树的左节点,需要和右子树的右节点对应
- 左子树的右节点,需要和右子树的左节点对应
例如,下面这棵树是对称的:
1
/ \
2 2
/ \ / \
3 4 4 3
从中间看,左右两边像镜子一样对应。
下面这棵树不是对称的:
1
/ \
2 2
\ \
3 3
虽然左右两边都有节点值 2 和 3,但两个 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\)
Link
→ Solution