我对此递归有一个小疑问
当will
首次调用main时,p的值为-1
说何时将对dfs(2,3)
进行第一次递归调用(让u = 2,v = 3)
那么3会自动转换为-1吗?或(2,3)
将被传递
照原样,并且-1仅适用于第一次递归调用
void dfs(int v, int p = -1) {
par[v] = p;
for (int u : G[v]) {
if (u == p) continue;
f[u] += f[v];
printf("%d",f[u]);
dfs(u, v);
}
}
答案 0 :(得分:1)
在void dfs(int v, int p = -1)
中,-1
是默认值。
所以当你写
dfs(42);
实际上是
dfs(42, -1);
但如果提供参数,则不使用默认值。