输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度为树的深度。
//方法1:递归
int TreeDepth(TreeNode* pRoot)
{
if(pRoot==NULL)
{
return 0;
}
return TreeDepth(pRoot->left)>TreeDepth(pRoot->right)?TreeDepth(pRoot->left)+1:TreeDepth(pRoot->right)+1;
}
//方法2:分治
int TreeDepth(TreeNode* pRoot)
{
if(pRoot==NULL)
{
return 0;
}
int left_n=TreeDepth(pRoot->left);
int right_n=TreeDepth(pRoot->right);
return max(left_n,right_n)+1;
}