58-对称的二叉树
2020-05-30 本文已影响0人
马甲要掉了
题目描述
请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。
分析
递归。
对称树满足:
1.根节点相同;
2.根节点左右子树相同;
3.左子树的左子树和右子树的右子树相同,左子树的右子树和右子树的左子树相同.
代码
/* function TreeNode(x) {
this.val = x;
this.left = null;
this.right = null;
} */
function isSymmetrical(pRoot)
{
if(pRoot==null){
return true;
}
return isEqual(pRoot.left,pRoot.right);
}
function isEqual(left,right){
if(left==null){
return right==null
}
if (right === null) {
return false; //必须要有这个if否则会出错
}
if(left.val != right.val){
return false;
}
return isEqual(left.left,right.right) && isEqual(left.right,right.left);
}