vlambda博客
学习文章列表

NC13 二叉树的最大深度

情景提要

    牛客题解系列,按照题号顺序开始。







NC13 二叉树的最大深度








01




题目描述

     求给定二叉树的最大深度,

     最大深度是指树的根结点到最远叶子结点的最长路径上结点的数量。



02




输入输出示例

入: 

     {1,2}

输出: 

     2


03




题目分析

NC13 二叉树的最大深度














      本题可以使用递归来做。当节点为空时,深度为0。否则结点深度为左右子树的深度的最大值+1。

      使用迭代的方法也可以做。可以使用层序遍历,在循序中来计算循环的次数,就可以得到树的深度。就在下面两篇(NC14,NC15)有写二叉树层序遍历的题解,看这两篇就可以知道怎么用层序遍历的方法解本题了,这里就不重复啦。




03




代码实现


方法


/** * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */
class Solution {public: /** * * @param root TreeNode类 * @return int整型 */ int maxDepth(TreeNode* root) { // write code here if(!root) return 0; return max(maxDepth(root->left),maxDepth(root->right))+1; }};




04




NC13 二叉树的最大深度

     把握好递归和迭代的套路,就可以解决二叉树的常规题目啦。

NC13 二叉树的最大深度















欢迎评论区留言讨论哦