哪个递归方法更好,为什么对于整数的反转数字?

Nee*_*lpe 0 java recursion

public static int recursiveReverse(int number, int reversenumber){

    if(number <= 0) {
        return reversenumber;
    }

    reversenumber = reversenumber * 10 + (number % 10);
    number = number/10;

    return recursiveReverse(number, reversenumber);
}
Run Code Online (Sandbox Code Playgroud)

要么

private static int reversenumber = 0;

public static int recursiveReverse(int number){

    if(number <= 0) {
        return reversenumber;
    }

    reversenumber = reversenumber * 10 + (number % 10);
    number = number / 10;

    return recursiveReverse(number);  
}
Run Code Online (Sandbox Code Playgroud)

Dan*_*Tao 5

绝对不是最后一个.将状态保持变量放在静态字段中只是要求麻烦.并不是说您必须设计并发性,但是如果您有多个线程运行此代码,那么共享reverseNumber字段将完全破坏所有内容.

我没有看到第一和第二之间有任何区别.(从字面上看,它们看起来和我一模一样.)

如果您的目标是通过为第二个参数(reverseNumber)设置默认值来简化调用约定,那么只需重载您的方法:

public static int recursiveReverse(int number) {
    return recursiveReverse(number, 0);
}

private static int recursiveReverse(int number, int reverseNumber) {
    // your code goes here
}
Run Code Online (Sandbox Code Playgroud)