Я пытаюсь создать функцию, которая будет подсчитывать количество узлов больше определенной глубины "k".
Вот мой код функции обхода дерева и вспомогательной функции для поиска глубина каждого узла:
int findDepth(BinaryNode * t, int value, int depth){
if( t == nullptr ){
return 0;
}
if( t->element == value){
return depth;
}
int lowerDepth = findDepth(t->left, value, depth+1);
if(lowerDepth != 0){
return lowerDepth;
}
lowerDepth = findDepth(t->right, value, depth+1);
return lowerDepth;
}
int countDeep( BinaryNode * t, int k ){
int count = 0;
if (t != nullptr){
countDeep( t->left, k );
if (findDepth(t, t->element, 0)){
count++;
}
countDeep( t->right, k );
}
return count;
}
Сейчас функция всегда возвращает 0, и я не совсем уверен, почему.