每日一练(39) - 二叉树的深度

来源:互联网 发布:重启后自动还原的软件 编辑:程序博客网 时间:2024/05/16 11:48

题目来自剑指Offer

题目:求二叉树的深度

代码

#include <iostream>#include <assert.h>using namespace std;const int SIZE = 100;struct BinaryTreeNode {char m_nValue;BinaryTreeNode* m_pLeft;BinaryTreeNode* m_pRight;};int Depth(BinaryTreeNode* pRoot){if (!pRoot){return 0;}int nLeftDepth = Depth(pRoot->m_pLeft);int nRightDepth = Depth(pRoot->m_pRight);return max(nLeftDepth,nRightDepth) + 1;}void Create(BinaryTreeNode*& pRoot)    {    char newData;    cin >> newData;    if ('#' == newData)    {    pRoot = NULL;    }    else    {    pRoot = new BinaryTreeNode;    pRoot->m_nValue = newData;    Create(pRoot->m_pLeft);    Create(pRoot->m_pRight);     }    }    int main(){BinaryTreeNode* Root = NULL;Create(Root);cout<<"Depth: "<<Depth(Root)<<endl;system("pause");return 1;}
注意:

树的构建类似树的子结构,这里不再详述。