很简单的解法,直接一个模拟递归下去
二叉树的深度
http://www.nowcoder.com/questionTerminal/435fb86331474282a3499955f0a41e8b
class Solution {
public:
int deep( TreeNode *root ){   //用来统计 以   该节点为根的树  它的深度   的函数
    if( root==NULL )return 0;  //如果该节点已经空了,它的深度就为0
    int left_deep=deep( root->left );   //看看这个节点的左子树的深度
    int right_deep=deep( root->right );  //看看这个节点的右子树的深度
    int value=max( left_deep,right_deep )+1;  //然后比较大小,是左子树深还是右子树深,顺便加1,因为当前这一层也要算进去
    //cout<<value<<endl;
    return value;
}
int TreeDepth(TreeNode* pRoot)
{
    return deep( pRoot );
}};
查看9道真题和解析
