NC13 二叉树的最大深度
情景提要
牛客题解系列,按照题号顺序开始。
NC13 二叉树的最大深度
01
题目描述
求给定二叉树的最大深度,
最大深度是指树的根结点到最远叶子结点的最长路径上结点的数量。
02
输入输出示例
输入:
{1,2}
输出:
2
03
题目分析
本题可以使用递归来做。当节点为空时,深度为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
总结
把握好递归和迭代的套路,就可以解决二叉树的常规题目啦。