このような再帰関数で開始する場合
void recursive(int p1, String p2, long p3) {
...
if (someCondition) {
recursive(nextP1, nextP2, nextP3);
}
}
これを次のように変更します。
void recursive(int p1, String p2, long p3, int level) {
...
if (someCondition) {
recursive(nextP1, nextP2, nextP3, level+1);
}
}
次に、呼び出してゼロからレベルを開始します
recursive(initialP1, initialP2, initialP3, 0);
level
上記の呼び出し回数が表示されrecursive
ます。
編集:(ゼロアットザトップ)
関数を変換してそのレベルを返すことで、「ゼロを先頭に」戦略を実装することもできます。
int recursive(int p1, String p2, long p3) {
if (baseCase) {
return 0;
}
...
int level = 0;
if (someCondition) {
level = 1+recursive(nextP1, nextP2, nextP3);
}
return level;
}
この場合level
、最後の再帰呼び出しが返されるまで、あなたを見つけることができないことに注意してください。