#include<iostream>
#include<stack>
using namespace std;
//求二叉树的深度
struct binaryTreeNode
{
int value;
binaryTreeNode *pLeft;
binaryTreeNode *pRight;
};
//递归
int bstDepth_recursive(binaryTreeNode *pRoot)
{
if(NULL==pRoot)
{
return 0;
}
int leftDepth=bstDepth_recursive(pRoot->pLeft);
int rightDepth=bstDepth_recursive(pRoot->pRight);
return (leftDepth>rightDepth)?(leftDepth+1):(rightDepth+1);
}
int main()
{
binaryTreeNode n1,n2,n3,n4,n5,n6,n7;
n1.value=1,n2.value=2,n3.value=3,n4.value=4;
n5.value=5,n6.value=6,n7.value=7;
n1.pLeft=&n2,n1.pRight=&n3;
n2.pLeft=&n4,n2.pRight=&n5;
n3.pLeft=NULL,n3.pRight=&n6;
n4.pLeft=NULL,n4.pRight=NULL;
n5.pLeft=&n7,n5.pRight=NULL;
n6.pLeft=NULL,n6.pRight=NULL;
n7.pLeft=NULL,n7.pRight=NULL;
binaryTreeNode *pRoot=&n1;
cout<<bstDepth_recursive(pRoot)<<endl;
return 0;
}
求二叉树的深度
最新推荐文章于 2020-10-18 16:42:58 发布