题目描述:求给定二叉树的最大深度,深度是指树的根节点到任一叶子节点路径上节点的数量。最大深度是所有叶子节点的深度的最大值。
解题思路:利用递归,遍历全二叉树,可得到每个结点的深度,记录最大结点深度即可。(本代码使用先序遍历)。
void pre(TreeNode *root,int &deep,int &maxDeep)
{
if(root==nullptr)
return;
deep++;
deep>maxDeep?maxDeep=deep:maxDeep;
pre(root->left,deep,maxDeep);
pre(root->right,deep,maxDeep);
deep--;
}
int maxDepth(TreeNode* root) {
// write code here
int deep = 0;
int maxDeep = 0;
pre(root,deep,maxDeep);
return maxDeep;
}