题目
给定一个二叉树,检查它是否是镜像对称的。
例如,二叉树 [1,2,2,3,4,4,3]
是对称的。
1 | 1 |
但是下面这个 [1,2,2,null,3,null,3]
则不是镜像对称的:
1 | 1 |
说明:
如果你可以运用递归和迭代两种方法解决这个问题,会很加分。
Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center).
For example, this binary tree [1,2,2,3,4,4,3]
is symmetric:
1 | 1 |
But the following [1,2,2,null,3,null,3]
is not:
1 | 1 |
Note:
Bonus points if you could solve it both recursively and iteratively.
解题方法
分割为两个子树
首先判断根是否为空,不为空则判断左右子节点是否同为空,同为空则为对称二叉树;然后判断左右子节点是否存在空指针,存在则不为对称二叉树;左右子节点均不为空,则判断它们的值val是否相等,然后递归判断左右子节点的子树是否为对称二叉树。这段代码跑了10ms,超过了92.26%的java提交。
1 | class Solution { |