int dfs(int i,int sum)
{
if(i==n+1) return sum==k;
if(dfs(i+1,sum)) return 1;
if(dfs(i+1,sum+a[i+1])) return 1;
}
这段代码是计算能否从数组 a 中找到任意个数,使其和等于 k 的。难道搜索树从最左边走到底的时候,如果 sum != k 不已经 return 0 了么 ... 为什么程序还能继续跑呢?
return 我理解 ... 就是退到上一个递归的情况,但是为何 return 的是 0 之后依然还能遍历全部搜索树呢?