题解 | #对称的二叉树#

对称的二叉树

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)。

全部评论

相关推荐

2024-12-23 06:50
门头沟学院 Java
给点吧求求了:3点发的帖子,害怕😰
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务