剑指offer:对称二叉树

1、题目描述:

请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。

2、解题思路:

如果一棵树是空树,那么他就是对称的;

如果一棵树既不是空树也不是单节点树,而且这棵树和它的子树都是对称的,也就是这棵树的左子树的左子树和右子树的右子树对称,左子树的右子树和右子树的左子树对称。

3、JavaScript实现:

/* function TreeNode(x) {
    this.val = x;
    this.left = null;
    this.right = null;
} */
function check(l,r){
    if(l === null && r === null) return true;
    if(l !== null && r !== null) {
        return (l.val === r.val) && check(l.left, r.right) && check(r.left, l.right);
    };
    return false;
}
function isSymmetrical(pRoot)
{
    // write code here
    if(pRoot === null){
        return true;
    }
    return check(pRoot.left,pRoot.right);
}

 

posted @ 2017-03-29 22:40  一叶芝秋  阅读(134)  评论(0编辑  收藏  举报