求二叉树的高度(C++递归实现)

43 阅读1分钟

不要自卑,去提升实力
互联网行业谁技术牛谁是爹
如果文章可以带给你能量,那是最好的事!请相信自己
加油o~

1、实现思路:

定义两个变量,left和right
分别存储当点节点的左右子树的高度,最后返回根节点的左右最大值
递归去遍历每个节点,如果一个节点存在左子树,就将它的left+1,如果存在右子树,就将其right+1,直到全部节点遍历完,最后得到根节点的left和right

代码:

/**
 *作者:魏宝航
 *2020年11月27日,下午15:13
 */
int treeDepth(Node* root) {
    int left = 0, right = 0;
    if (root == NULL) {
        return 0;
    }
    else {
        left = treeDepth(root->left) + 1;
        right = treeDepth(root->right) + 1;
        return max(left, right);
    }
}