public static void solveTowers(int disks, int sourcePeg, int destinationPeg, int tempPeg)
{
//always set the base case in any type of recursion programs
if(disks == 1)
{
System.out.printf("\n%d --> %d", sourcePeg, destinationPeg);
return;
}
//call the method itself
solveTowers(disks - 1, sourcePeg, tempPeg, destinationPeg);
System.out.printf("\n%d --> %d", sourcePeg, destinationPeg);
solveTowers(disks - 1, tempPeg, destinationPeg, sourcePeg);
}
我的问题是第一个 System.out 语句下的“返回”是什么?
调试时,第solveTowers
一种方法到达基本情况后,即磁盘== 1,进入if语句,到达后return;
,进入第二System.out
条语句,然后是second solveTowers
方法,所以问题是为什么return;
跳过但first solveTowers
不是第二个?