思路如下:
如果树是空树,就返回0;
如果一棵树只有一个节点,那么它的深度为1;
如果根节点只有左子树,树的深度为左子树的深度+1;
如果根节点只有右子树,树的深度为右子树+1;
如果根节点既有左子树,又有右子树,树的深度为左子树和右子树的最大值+1
用递归实现的代码如下;
int TreeDepth(TreeNode* pRoot)
{
if(pRoot==0)
{
return 0;
}
int nleft=TreeDepth(pRoot->left);
int nright=TreeDepth(pRoot->right);
return (nleft>nright) ? (nleft+1):(nright+1);
}