思路:
- 首先定义了一个树类
Tree
,其中节点类型为BTNode
。 - 在树类中定义了私有成员函数
GetHeight
,用于计算给定节点的高度。 - 在
GetHeight
函数中,首先判断传入的节点指针是否为空,如果是空则返回 0。 - 如果节点不为空,则分别递归调用
GetHeight
函数来计算当前节点的第一个子节点和下一个兄弟节点的高度。 - 返回子树的最大高度加一(加一表示当前层级)和兄弟节点的高度中较大的那个值作为当前节点的高度。
- 在公有成员函数
Height
中调用GetHeight
函数,并将根节点传入来获取整棵树的高度。
注释:
“`cpp
template
// 若当前节点为空,则返回 0 表示高度为 0
if (!node)
return 0;
// 计算第一个子节点的高度
int heightFirstChild = GetHeight(node->firstChild);
// 计算下一个兄弟节点的高度
int heightNextSibling = GetHeight(node->nextSibling);
// 返回子树的最大高度加一(加一表示当前层级)和兄弟节点的高度中较大的那个值作为当前节点的高度
return max(heightFirstChild + 1, heightNextSibling);
}
template
// 调用 GetHeight 函数计算整棵树的高度,并返回结果
int height = GetHeight(root);
return height;
}
“`
内容由零声教学AI助手提供,问题来源于学员提问