题解 | #对称的二叉树#

对称的二叉树

https://www.nowcoder.com/practice/ff05d44dfdb04e1d83bdbdab320efbcb

/* function TreeNode(x) {
    this.val = x;
    this.left = null;
    this.right = null;
} */
function isSymmetrical(pRoot)
{
    return check(pRoot, pRoot);
}
// 判断是否是对称的,需要比对左右两个子树,所以传入两个参数
function check(L, R) {
    // 叶子节点
    if(!L && !R) return true;
    // 不含左子树或不含右子树,或者左子树和右子树不等时 就返回false
    if(!L || !R || L.val != R.val) return false;
    // 不是上面的情况就继续往下比对(递归)
    return check(L.left, R.right) && check(L.right, R.left);
}
module.exports = {
    isSymmetrical : isSymmetrical
};

判断二叉树是否对称,是需要拿root的左右子树来比对的,这也就限定了我们不能自从一棵树自身去检查check(root),必须用两棵子树去一一比对check(root.left, root.right)。

全部评论

相关推荐

准备进厂的共享单车:你最好现在就开始投吧 投一些中厂左右的公司 因为快寒假实习了 普遍比较好找一点 年后尤其快暑假的前一两个月竞争最激烈,现在投慢慢练面试经验 如果没过就慢慢沉淀 过了也看自身情况直接去实习呗 (有offer也可以不去啊) 有机会的话最好还是直接把握了,一定要等到年后实习吗 找个好实习寒假过年那几天又不是不能回家过年 难道你寒假有其他打算吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务