js判断为数字且不为空,二叉树深度广度

一、判断为数字且部位空

//判断为数字
export function  isNumber(obj) { 
  return typeof obj === 'number' && !isNaN(obj) 
}
//判断是否为数字且不为空
export function isRealNum(val){
    if(val === "" || val ==null){
        return false;
    }
    if(!isNaN(val)){
        return true;
    }else{
        return false;
    }
}

二、二叉树的深度遍历、广度遍历

const tree = {
    value: 1,
    left: {
        value: 2,
        left: {
            value: 4,
            left: {
                value: 8
            },
            right: {
                value: 9
            }
        },
        right: {
            value: 5
        }
    },
    right: {
        value: 3,
        left: {
            value: 6
        },
        right: {
            value: 7
        }
    }
}
//深度优先:
function dfsRecursion(tree) {
    let res = [];
    function dfs(node){
        if(node) {
            res.push(node.value);
            dfs(node.left);
            dfs(node.right);
        }
    }
    dfs(tree);
    return res;
}
dfsRecursion(tree)
//结果 [1, 2, 4, 8, 9, 5, 3, 6, 7]
//广度优先:
function bfs(tree) {
    let res = [];
    let arr = [];
    arr.push(tree);
    while(arr.length) {
        const node = arr.shift();
        res.push(node.value);
        if(node.left) {
            arr.push(node.left);
        }
        if(node.right) {
            arr.push(node.right);
        }
    }
    return res;
}
bfs(tree)
//结果:[1, 2, 3, 4, 5, 6, 7, 8, 9]

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值