输入一棵二叉树的根结点,求该树的深度?

输入一棵二叉树的根结点,求该树的深度?

二叉树的结点定义如下:
struct BinaryTreeNode
{
    int m_nValue ;
    BinaryTreeNode* m_pLeft;
    BinarvTreeNode* m_pRight ;
}
  • 如果一棵树只有一个结点,它的深度为1。

  • 如果根结点只有左子树而没有右子树,那么树的深度应该是其左子树的深度加1;同样,如果根结点只有右子树而没有左子树,那么树的深度应该是其右子树的深度加1。

  • 如果既有右子树又有左子树,那该树的深度就是其左、右子树深度的较大值再加1。

int TreeDepth(TreeNode* pRoot)
{
    if(pRoot == nullptr)
        return 0;
    int left = TreeDepth(pRoot->left);
    int right = TreeDepth(pRoot->right);

    return (left>right) ? (left+1) : (right+1);
}

.

作为一个开发者,有一个学习的氛围跟一个交流圈子特别重要,这是一个我的iOS交流群:413038000,不管你是小白还是大牛欢迎入驻 ,分享BAT,阿里面试题、面试经验,讨论技术, 大家一起交流学习成长!

推荐阅读

iOS开发——最新 BAT面试题合集(持续更新中)

推荐阅读更多精彩内容