【面试题08.06.汉诺塔问题】

目录

  • 一、题目描述
  • 二、算法原理
  • 三、代码实现

一、题目描述

【面试题08.06.汉诺塔问题】_第1张图片

二、算法原理

【面试题08.06.汉诺塔问题】_第2张图片

三、代码实现

class Solution {
public:
    void hanota(vector<int>& A, vector<int>& B, vector<int>& C) 
    {
        int n=A.size();
        _hanota(n,A,B,C);
    }

    void _hanota(int n,vector<int>& A,vector<int>& B,vector<int>& C)
    {
        if(n==1)
        {
            C.push_back(A.back());
            A.pop_back();
            return;
        }
        _hanota(n-1,A,C,B);
        C.push_back(A.back());
        A.pop_back();
        _hanota(n-1,B,A,C);
        return;
    }
};

你可能感兴趣的:(算法,leetcode)