面试题 08.06. 汉诺塔问题 - 力扣(LeetCode)
递归问题,一定相信调用的这个函数传参进去能解决好问题,就是不用展开具体的递归图;
class Solution {
public:
void hanota(vector<int>& A, vector<int>& B, vector<int>& C) {
dfs(A, B, C, A.size());
return;
}
void dfs(vector<int>& A, vector<int>& B, vector<int>& C,int n)
{
if(n == 1)
{
C.push_back(A.back());
A.pop_back();
return;
}
dfs(A, C, B, n-1);
C.push_back(A.back());
A.pop_back();
dfs(B, A, C, n -1);
}
};