我必须编写一个函数来查找第一个子级别中的节点数 - 下一个同级N-ary树。 我的职责是:
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);
}
但它不起作用。 有人能帮助我吗?
答案 0 :(得分:0)
现在,您的代码似乎只返回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
}
这应该在每次递归后更新值,与当前代码不同。