剑指offer

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);
}
上一篇 下一篇

猜你喜欢

热点阅读