2011-02-09 3 views
2

Как изменить две функции, взаимно рекурсивные друг к другу, чтобы превратить их в линейную рекурсию? Должен ли я иметь оба метода в одном методе?Вопрос о взаимной рекурсии

+0

Возможно, вы можете проиллюстрировать пример короткого кода, чего вы пытаетесь достичь? –

+0

как вам удалось получить взаимную рекурсию в 1-м месте? – bestsss

ответ

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 
} 

Если второй метод давно и вызывается из нескольких точек в первом способе, он может запутаться, хотя.