题目:
来源:对称二叉树
给定一个二叉树,检查它是否是镜像对称的
示例:
解题思路及代码
1.思路
如果这个二叉树的左子树跟右子树镜像对称,则这个树是镜像对称的。
所以该题可以转成,如何判断两个树是镜像对称的?
(1)两个根结点的值相同
(2)每个树的左子树都与另一个树的右子树镜像对称
2.代码
var isSymmetric = function(root) {
return isMirror(root, root);
};
var isMirror = function (p , q) {
if (p == null && q == null) {
return true;
}
if (p == null || q == null) {
return false;
}
return (p.val == q.val) && isMirror(p.left, q.right) && isMirror(p.right, q.left);
}