第一个子级中的级别的节点数 - 下一个兄弟树

时间:2017-07-27 09:45:34

标签: c data-structures tree n-ary-tree

我必须编写一个函数来查找第一个子级别中的节点数 - 下一个同级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);
}

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

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
}

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

相关问题