#include <stdio.h>
#include <stdlib.h>
typedef struct BinaryTreeNode
{
int val;
struct BinaryTreeNode* left;
struct BinaryTreeNode* right;
}BinaryTreeNode;
BinaryTreeNode* CreateBinaryTreeNode(int val)
{
BinaryTreeNode* pNode = (BinaryTreeNode*)malloc(sizeof(BinaryTreeNode));
pNode->val=val;
pNode->left=NULL;
pNode->right=NULL;
return pNode;
}
void ConnectTreeNodes(BinaryTreeNode* pParent,BinaryTreeNode* pLeft,BinaryTreeNode* pRight)
{
if(pParent != NULL)
{
pParent->left=pLeft;
pParent->right=pRight;
}
}
int TreeDepth(BinaryTreeNode*pRoot)
{
if(pRoot==NULL)
return 0;
int left=1;
int right=1;
left += TreeDepth(pRoot->left);
right += TreeDepth(pRoot->right);
return left>right ? left:right;
}
int main()
{
/*
1
/ \
2 3
/\ \
4 5 6
/
7
/
8
*/
BinaryTreeNode* pNode1 = CreateBinaryTreeNode(1);
BinaryTreeNode* pNode2 = CreateBinaryTreeNode(2);
BinaryTreeNode* pNode3 = CreateBinaryTreeNode(3);
BinaryTreeNode* pNode4 = CreateBinaryTreeNode(4);
BinaryTreeNode* pNode5 = CreateBinaryTreeNode(5);
BinaryTreeNode* pNode6 = CreateBinaryTreeNode(6);
BinaryTreeNode* pNode7 = CreateBinaryTreeNode(7);
BinaryTreeNode* pNode8 = CreateBinaryTreeNode(8);
ConnectTreeNodes(pNode1, pNode2, pNode3);
ConnectTreeNodes(pNode2, pNode4, pNode5);
ConnectTreeNodes(pNode3, NULL, pNode6);
ConnectTreeNodes(pNode5, pNode7, NULL );
ConnectTreeNodes(pNode7, pNode8, NULL );
//TreeDepth(pNode1);
printf("二叉树深度:%d\n",TreeDepth(pNode1));
}
二叉树深度
最新推荐文章于 2024-02-22 12:51:35 发布