‹ 上一题 下一题 ›

g7-07704. 子树大小必须在子节点算完之后累加 未做

下面的代码想求每个节点的子树大小,sz 是全为 的全局数组,对以 为根的树调用 dfs(1, 0)。

void dfs(int u, int fa) {
    sz[u] = 1;
    for (int v : adj[u]) {
        if (v == fa) continue;
        sz[u] += sz[v];
        dfs(v, u);
    }
}

对以 为根的链 (边为 、)运行后,结果是( )。

  • A. 结果正确:加法满足交换律,先加子节点还是后加子节点都一样
  • B. 得到 、、:累加时子节点的 还停在初值
  • C. 只有 算错, 与 仍然正确
  • D. 会无限递归,因为 v == fa 的判断已经失效
未选择
输入
输出

            
答案