递归:①调用自身;②结束条件
汉诺塔问题:
面试题 08.06. 汉诺塔问题 - 力扣(LeetCode)
class Solution(object):
def hanota(self, A, B, C): #将n个盘子从A经过B移动到C
n = len(A)
self.move(n,A,B,C)
return C
def move(self,n,A,B,C):
if n==1:
C.append(A[-1])
A.pop()
else:
self.move(n-1,A,C,B)
C.append(A[-1])
A.pop()
self.move(n-1,B,A,C)
一次移动需要借助一个空盘子
分n-1和1个盘子