题目描述
给你一个二叉树的根节点 root , 检查它是否轴对称。
示例 1:
输入: root = [1,2,2,3,4,4,3]
输出: true
示例 2:
输入: root = [1,2,2,null,3,null,3]
输出: false
解题思路
- 根据题意要验证一颗数是否是对称二叉树,如果一颗树的左子树和右子树镜像对称,那么就是一颗对称二叉树
- 因此该题可以转化为,两颗树在什么情况下互为镜像
- 它们的两个根节点具有相同的值
- 一颗树的左子树和另一颗树的右子树的值相同,相反也相同
代码
var isSymmetric = function(root){
let pre = function(p, q){
if(p == null && q == null) return true;
if(p == null || q == null) return false;
return p.val == q.val && pre(p.left, q.right) && pre(p.right, q.right);
}
return pre(root, root);
}