C++二叉查找树的深度

算法

采用递归的方法
1.如果左子树不为空,递归计算左子树的深度left
2.如果右子树不为空,递归计算右子树的深度right
3.比较left和right,树的深度为较大者+1(加上根结点)

代码

//计算整个树的深度
    int maxDepth(){
        return maxDepth(root);
    }

    //计算指定子树的深度
    int maxDepth(Node<Value>* x){
        int depth = 0;
        int left = 0;
        int right = 0;
        //计算左子树深度
        if(x->left != nullptr) left = maxDepth(x->left);
        //计算右子树深度
        if(x->right != nullptr) right = maxDepth(x->right);
        //比较左右子树的深度,较大者+1为整个子树的深度
        depth = left > right ? left + 1 : right + 1;
        return depth;
    }
©️2020 CSDN 皮肤主题: 书香水墨 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值