剑指 Offer 28. 对称的二叉树

题目描述:

请实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称的。

示例:

二叉树 [1,2,2,3,4,4,3] 是对称的。
在这里插入图片描述

这个 [1,2,2,null,3,null,3] 则不是镜像对称的:
在这里插入图片描述

思路:

采用递归方法,先判断根节点的左子树和右子树是否为空,同时为空,则返回true,一个为空,则为false。同时不为空,则判断其值是否相等,然后递归判断左子树和右子树的

代码:

1
2
3
4
5
6
7
8
9
var isSymmetric = function(root) {
return isSymmetricFunction(root,root);
function isSymmetricFunction(left,right){
if(left==null && right==null) return true;
if(left==null || right==null) return false;
if(left.val != right.val) return false;
return isSymmetricFunction(left.left,right.right) && isSymmetricFunction(left.right,right.left)
}
};