14 JavaScript二叉树镜像 牛客网JZ27 JZ28

JZ27 二叉树的镜像

描述

        操作给定的二叉树,将其变换为源二叉树的镜像。

        数据范围:二叉树的节点数 0 \le n \le 10000≤n≤1000 , 二叉树每个节点的值 0\le val \le 10000≤val≤1000

        要求: 空间复杂度 O(n)O(n) 。本题也有原地操作,即空间复杂度 O(1)O(1) 的解法,时间复杂度 O(n)O(n)

示例

输入:{8,6,10,5,7,9,11}

返回值:{8,10,6,11,9,7,5}

/*
 * function TreeNode(x) {
 *   this.val = x;
 *   this.left = null;
 *   this.right = null;
 * }
 */
/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param pRoot TreeNode类 
 * @return TreeNode类
 */
function Mirror( pRoot ) {
    // write code here
    if(!pRoot){
        return pRoot
    }
    let temp = pRoot.left
    pRoot.left = pRoot.right
    pRoot.right = temp
    Mirror(pRoot.left)
    Mirror(pRoot.right)
    return pRoot
}
module.exports = {
    Mirror : Mirror
};

JZ28 对称的二叉树

描述

        给定一棵二叉树,判断其是否是自身的镜像(即:是否对称)

function TreeNode(x) {
    this.val = x;
    this.left = null;
    this.right = null;
}
function isSymmetrical(pRoot)
{
    // write code here
    if(pRoot === null) return true
    function compare(a,b){
        
        if(a===null && b===null) return true
        if(a===null || b===null) return false
        if(a.val !== b.val) return false
        return compare(a.left,b.right)&&compare(a.right,b.left)
    }   
    return compare(pRoot.left,pRoot.right)
}
module.exports = {
    isSymmetrical : isSymmetrical
};

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值