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不是第二个?