题解 | #对称的二叉树#

对称的二叉树

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

。。。有点笨蛋但好懂的解法
/* function TreeNode(x) {
    this.val = x;
    this.left = null;
    this.right = null;
} */
function isSymmetrical(pRoot)
{
    // write code here
    //空树---对称
    if(!pRoot) return true;
    //只有根节点的树---对称
    if(pRoot.left == null && pRoot.right == null) return true;
    
    //如果左右子树二缺一 --- 不对称
    if(pRoot.left && pRoot.right){
        //如果左右两树根的值不相等,不用往下判断了 --- 不对称
        if(pRoot.left.val !== pRoot.right.val) return false;
    }else return false;
    
    //中序遍历--将节点值放入数组
    this.inorder = function(root,arr){
        if(arr === undefined){
            arr = [];
        }
        if(!root) return null;
        this.inorder(root.left,arr);
        arr.push(root.val);
        this.inorder(root.right,arr);
        return arr;
    };

    //遍历生成数组
    var leftArr = this.inorder(pRoot.left,[]);
    var rightArr = this.inorder(pRoot.right,[]);
    
    //翻转后的左子树数组和右子树数组对比
    //数值相同---对称
    if(leftArr.reverse().toString() == rightArr.toString()) return true;
        
    return false;
    
}
module.exports = {
    isSymmetrical : isSymmetrical
};

全部评论
简单明了蛮好的
点赞 回复 分享
发布于 2022-09-20 11:09 四川

相关推荐

2024-12-25 09:09
四川师范大学 运营
想和你交朋友的潜伏者要冲国企:先去沃尔玛亲身感受标准化流程体系,一两年后再跳槽国内任何零售行业,可以有更大选择权吧?
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务