/**************************************************************
*@time 2016/08/26 17:51
*@place Ctrip.15#.9F
*@author DZQ
*******************************************************************/
#include<cstdio>
#include<algorithm>
struct Node
{
int value=-1;
Node* lson=NULL;
Node* rson=NULL;
};
/***********************************************************************
*@name get_Depth 得到一棵樹的深度
*@parameter Node* node 輸的節點,主函數傳的參數爲一棵樹的根節點
*@description 運用了遞歸的思想。一棵樹的深
* 度等於出根節點爲子樹的深度家一
****************************************************************************/
int get_Depth(Node* node)
{
if(node==NULL)
{
return 0;
}
int depth_Of_Lson=get_Depth(node->lson);//得到左子樹的深度
int depth_Of_Rson=get_Depth(node->rson);//得到右子樹的深度
int depth_Of_Son=depth_Of_Lson>depth_Of_Rson?depth_Of_Lson:depth_Of_Rson;//左右子樹深度比較大的作爲子樹的深度
return depth_Of_Son+1;//樹的深度等於子樹的深度加一
}
int main()
{
//構造樹
Node* root=(Node*)malloc(sizeof(Node));
root->value=1;
root->lson=NULL;
root->rson=NULL;
Node* node2=(Node*)malloc(sizeof(Node));
node2->value=2;
node2->lson=NULL;
node2->rson=NULL;
root->lson=node2;
Node* node3=(Node*)malloc(sizeof(Node));
node3->value=3;
node3->lson=NULL;
node3->rson=NULL;
root->rson=node3;
Node* node4=(Node*)malloc(sizeof(Node));
node4->value=4;
node4->lson=NULL;
node4->rson=NULL;
node2->lson=node4;
Node* node5=(Node*)malloc(sizeof(Node));
node5->value=5;
node5->lson=NULL;
node5->rson=NULL;
node2->rson=node5;
Node* node6=(Node*)malloc(sizeof(Node));
node6->value=6;
node6->lson=NULL;
node6->rson=NULL;
node3->rson=node6;
Node* node7=(Node*)malloc(sizeof(Node));
node7->value=7;
node7->lson=NULL;
node7->rson=NULL;
node5->rson=node7;
int depth_Of_Son=get_Depth(root);
printf("The depth of Tree is %d\n",depth_Of_Son);
}
劍指offer39_樹的深度
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.