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