
欢迎来到Cefler的博客😁
🕌博客主页:那个传说中的man的主页
🏠个人专栏:题目解析
🌎推荐文章:题目大解析(3)

目录
- 👉🏻汉诺塔
👉🏻汉诺塔
原题链接:汉诺塔问题
 
mycode:
class Solution {
public:
    void difs(vector<int>& x, vector<int>& y, vector<int>& z,int n)
    {
        if(n==1)
       {
            z.push_back(x.back());
            x.pop_back();//记得将原柱子的盘子删除
       }
        else
        {
            difs(x,z,y,n-1);//x借助z柱将n-1个盘子挪动到y柱上
            z.push_back(x.back());//此时将底部盘子挪动到z柱子上
            x.pop_back();
            difs(y,x,z,n-1);//再将y柱上n-1个盘子借助x柱挪动到z上
        }
    }
    void hanota(vector<int>& a, vector<int>& b, vector<int>& c) {
        int n = a.size();
        difs(a,b,c,n);
    }
};


















