你的代码缺少实现部分,下面是补充完整的代码:
#include "binary_tree.h"
int GetTreeDepth(BiTreeNode* root)
// 计算该二叉树的深度
// 参数:二叉树根节点root
// 返回:二叉树的深度
{
if (root == NULL) {
return 0;
}
int leftDepth = GetTreeDepth(root->left); // 左子树深度
int rightDepth = GetTreeDepth(root->right); // 右子树深度
return 1 + (leftDepth > rightDepth ? leftDepth : rightDepth);
}
int GetNodeNumber(BiTreeNode* root)
// 计算该二叉树的总节点个数
// 参数:二叉树根节点root
// 返回:二叉树的总节点个数
{
if (root == NULL) {
return 0;
}
return 1 + GetNodeNumber(root->left) + GetNodeNumber(root->right);
}
int GetLeafNodeNumber(BiTreeNode* root)
// 计算该二叉树的叶子节点个数
// 参数:二叉树根节点root
// 返回:二叉树的叶子节点个数
{
if (root == NULL) {
return 0;
}
if (root->left == NULL && root->right == NULL) { // 当前节点为叶子节点
return 1;
}
return GetLeafNodeNumber(root->left) + GetLeafNodeNumber(root->right);
}
请确保在使用这些代码之前,已经定义了相应的二叉树节点结构和相关的头文件。
内容由零声教学AI助手提供,问题来源于学员提问