如何更改相互递归的两个函数,使它们成为线性递归?我必须将两种方法都放在一个方法中吗?

最佳答案

您应该能够简单地将第二种方法的实现“内联”到第一种方法中。

那是,

public static void methA() {
    // snippet 1

    methB();

    // snippet 2
}

public static void methB() {
    // snippet 3

    methA();

    // snippet 4
}


变成

public static void methAB() {
    // snippet 1

    // snippet 3

    methAB();

    // snippet 2

    // snippet 4
}


如果第二种方法很长,并且在第一种方法中从多个点调用,则它可能会变得混乱。

10-08 16:24