输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度为树的深度。

//方法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;
}