应该使用以下函数来计算二叉树的最大深度或高度-沿着从根节点到最远的叶节点的最长路径的节点数。
int maxDepth(struct node* node)
{
if (node==NULL)
return 0;
else
{
/* compute the depth of each subtree */
int lDepth = maxDepth(node->left);
int rDepth = maxDepth(node->right);
/* use the larger one */
if (lDepth > rDepth)
return X;
else return Y;
}
}
X和Y的值应该是多少才能使函数正常工作?
(A) X =深度,Y =深度
(B) X = lDepth +1,Y = rDepth +1
(C) X = lDepth – 1,Y = rDepth -1
(D)以上都不是答案: (B)
说明:如果树不为空,则树的高度为
MAX(左子树的高度,右子树的高度)+1
有关更多详细信息,请参见查找树的最大深度或高度的程序。
这个问题的测验