Recursion 我是否正确地跟踪了这个递归代码?

Recursion 我是否正确地跟踪了这个递归代码?,recursion,Recursion,} 我不熟悉递归,我只是想确保我正确地跟踪了它 我得到的是: public static void main( String[] args) { down_up( 3 ); } public static void down_up( int n ) { System.out.println(" Level: " + n); if( n > 1 ) down_up(n - 1); System.out.println(" LEVEL: " + n

}

我不熟悉递归,我只是想确保我正确地跟踪了它

我得到的是:

public static void main( String[] args)
{
     down_up( 3 );
}

public static void down_up( int n )
{
    System.out.println(" Level: " + n);

    if( n > 1 )
    down_up(n - 1);
    System.out.println(" LEVEL: " + n);
 }

差不多。您必须记住您的调用堆栈:

Level: 3
Level: 2
Level: 1
LEVEL: 1

答案不是三级,三级,二级,二级,一级,一级吗?不,不是!递归发生在两行输出之间。你最好仔细阅读通话记录。将来,当您想测试您的理论时,请尝试编译和运行代码。我在这里为你做到了:
Level: 3
Level: 2
Level: 1
LEVEL: 1
LEVEL: 2
LEVEL: 3