很简单的解法,直接一个模拟递归下去

二叉树的深度

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 );

}

};

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务