汉诺塔用回溯算法解决

星湫 星湫 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

 class Solution {
    public void hanota(List<Integer> A, List<Integer> B, List<Integer> C) {
        move(A, B, C, A.size());
    }

    public void move(List<Integer> a, List<Integer> b, List<Integer> c, int n) {
        if(n == 1) {
            c.add(a.get(a.size() - 1));
            a.remove(a.size() - 1);
            return;
        }

        move(a, c, b, n - 1);
        c.add(a.get(a.size() - 1));
        a.remove(a.size() - 1);
        move(b, a, c, n -1);
    }
}

...全文
评论
收藏 已收藏
分享
返回顶部