0
int levelBST(Node node,int key,int level){
if(node==null)
return;
if(node.data==key){
return level;
}
else if(node.data>key){
return levelBST(node->left,key,level+1);
}
else return levelBST(node-right,key,level+1);
}
Является ли приведенный выше фрагмент кода правильным или возникают некоторые проблемы. Пожалуйста помоги.Найти уровень ключа в двоичном дереве поиска
Кажется хорошо. if (node == null) return; здесь return -1, указывающий не найден. – NeoAsh
Это было задано в интервью. Интервьюер сказал, что в коде есть ошибки. Кроме того, что вы написали выше. – Virat
Вам не нужно передавать уровень в качестве аргумента. Он должен автоматически увеличиваться при каждом вызове. например, return levelBST (node-> left, key) +1; в первом возвратном выражении это будет 0; – NeoAsh