이이
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
을 찾을 수 없습니다. 레벨 0은 마지막으로 "중첩 된 호출"을해야하는 경우가 단지 3 이상의 중첩 호출 후 "말할 수 없기 때문에
재미 있고 흥미로운 사운드를 제공 할 수 있습니까? – Pao
매개 변수를 사용하여 각 호출에 대해 증가하는 인수를 전달하거나 전체를 반복적으로 수행합니다. 재귀 트리의 각 노드에서 깊이를 원하는 것처럼 들립니다. – oldrinb
탐색 된 트리에서 'nth' 요소를 찾으려면 각 재귀 호출의 * 및 *에 a 카운터를 전달하십시오. 형제 자매는 이전 형제를 횡단 한 결과 카운터에 공급됩니다. –