很简单的解法,直接一个模拟递归下去
二叉树的深度
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 );
}};

顺丰集团工作强度 369人发布