【LeetCode75】第三十三题 二叉树的最大深度

目录

题目:

示例:

分析:

代码:


题目:

【LeetCode75】第三十三题 二叉树的最大深度_第1张图片

示例:

【LeetCode75】第三十三题 二叉树的最大深度_第2张图片

分析:

从这一题开始,LeetCode75进入到了二叉树章节。

这边建议不熟悉二叉树的小伙伴可以先去做做力扣的前序遍历,中序遍历和后序遍历。

力扣https://leetcode.cn/problems/binary-tree-preorder-traversal/description/

力扣https://leetcode.cn/problems/binary-tree-inorder-traversal/submissions/力扣https://leetcode.cn/problems/binary-tree-postorder-traversal/description/

那么本题是让我们求出二叉树的最大深度,我们直接递归遍历二叉树,然后在递归的同时我们携带一个参数,那就是当前二叉树节点的深度,然后每次递归我们都将这个参数+1表示深度+1。

递归到了空指针(空节点)的时候,我们就将当前节点的深度和之前保存的答案做个比较,将保存的答案更新为较大的值。

具体可以参考下面的代码以及动图,动图是完整的把递归遍历的过程复现了一遍。

代码:

class Solution {
public:
    int res=0;
    void find(TreeNode* root,int deep){
        if(root==nullptr){
            res=max(res,deep);
            return;
        }
        find(root->left,deep+1);
        find(root->right,deep+1);
    }
    int maxDepth(TreeNode* root) {
        find(root,0);
        return res;
    }
};

你可能感兴趣的:(LeetCode75题解,算法,leetcode,c++,数据结构)