相互递归问题

时间:2011-02-09 21:29:30

标签: java recursion mutual-recursion

如何将两个相互递归的函数相互更改为一个线性递归?我是否必须在单个方法中同时使用这两种方法?

1 个答案:

答案 0 :(得分:8)

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

即,

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
}

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