接上一篇文章,继续探索二叉树的基本操作,即递归地求解二叉树中节点个数和深度。
int SizeTree(Node* t)//二叉树节点个数
{
int size = 0;
if (t == nullptr)
return 0;
else
return SizeTree(t->m_left) + SizeTree(t->m_right) + 1;
}
int HightTree(Node* t)//二叉树深度
{
int left, right;
if (t == nullptr)
return 0;
else
{
left = HightTree(t->m_left);
right = HightTree(t->m_right);
return left > right ? left + 1 : right + 1;
}
}
对二叉树深度代码进一步改进
int HighTree(Node* t)
{
if (t == nullptr)
return 0;
return max(HighTree(t->m_left), HighTree(t->m_right)) + 1;
}