关于递归怎么返回 尽量简单化 去看它
当递归 遇到出口后 你的思路也要跟着出来 自己不要再去递归啦 说实话调试递归很痛苦 因为很难知道自己要几重天啦
直接到出口改去的地方
例如:
1)SWAP(list[i],list[j],temp);
2)perm(list,i+1,n);
3)SWAP(list[i],list[j],temp);
递归的是2)perm 出来后直接看 3)就可以 因为每层都一样所以每层都有个3) 此时记住是回退到上一层 思路应该清晰啦 即使是在别的递归当回退后下面没有了“语句” 但是不要忘记后面一定还有条 “}”
当递归 遇到出口后 你的思路也要跟着出来 自己不要再去递归啦 说实话调试递归很痛苦 因为很难知道自己要几重天啦
直接到出口改去的地方
例如:
1)SWAP(list[i],list[j],temp);
2)perm(list,i+1,n);
3)SWAP(list[i],list[j],temp);
递归的是2)perm 出来后直接看 3)就可以 因为每层都一样所以每层都有个3) 此时记住是回退到上一层 思路应该清晰啦 即使是在别的递归当回退后下面没有了“语句” 但是不要忘记后面一定还有条 “}”