求二叉树的最大深度

1 解题思路

1 使用深度优先遍历

2 设置两个变量:一个变量是当前的深度;另一个变量是最大深度

3 每进入下一层,当前深度+1;每返回上一层,当前深度-1。

4 当一个节点的左右节点都为空的话,比较一下当前深度与最大深度,更新最大深度

如下图所示,红色数字表示的是当前节点二叉树的深度。

2 代码

void maxDepth1(TreeNode* root)
    {        
        if(root != nullptr)
        {
            if(root -> left == nullptr && root -> right == nullptr)//左右子树都为空的话就进行比较
            {
                if(max_depth < current_depth)
                    max_depth = current_depth;
            }
            current_depth++;//进入下一层后,当前深度加1
            maxDepth1(root -> left);
            
            maxDepth1(root -> right);
            current_depth--;//返回上一层后,当前深度减1
        }
    }

参考

遍历:深度优先

https://leetcode-cn.com/problems/maximum-depth-of-binary-tree/solution/bian-li-shen-du-you-xian-by-geek-8m/

原文地址:https://www.cnblogs.com/QQ2962269558/p/13195953.html