剑指offer:二叉树的深度
题目:输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。
分析:递归,一棵二叉树的高度等于1+max{左子树高度,右子树高度}
int TreeDepth(TreeNode* pRoot)
{
if(pRoot==nullptr)
return 0;
if(pRoot->left==nullptr && pRoot->right==nullptr)
return 1;
int leftH=TreeDepth(pRoot->left);
int rightH=TreeDepth(pRoot->right);
return leftH>rightH?leftH+1:rightH+1;
}