C - 第一个子级 - 下一个同级树中某个级别的节点数



我必须编写一个函数来查找第一个子级 - 下一个同级 N 元树的节点数。 我的函数是:

int nodesAtLevel(NTree root, int level) {
if (root == NULL) {
return 0;
}
if (level == 0) {
return 1;
}
return nodesAtLevel(root->firstChild, level - 1) + 
nodesAtLevel(root->nextSibling, level - 1);
}

但它不起作用。 有人可以帮助我吗?

现在,您的代码似乎只返回 2。我相信这就是您要做的:

int nodesAtLevel(NTree root, int level) {
if (root == NULL) {
return 0;
}
if (level == 0) {
return 1;
}
int x = nodesAtLevel(root->firstChild, level - 1);
int y = nodesAtLevel(root->nextSibling, level - 1);
return x + y + 1; //add 1 for current node
}

这应该在每次递归后更新值,这与当前代码不同。

相关内容

  • 没有找到相关文章

最新更新