我要解决这个问题,它循环遍历每个节点并找到值,但是返回时崩溃,不知道为什么。 Obs.:在问题中,据说右边有一个相同的数字。
我的代码:
int conta(pNodo* arvore, int valor) {
if(arvore == NULL) {
return 0;
}
else {
if(arvore->info == valor) {
return(conta(arvore->dir, valor) + 1);
}
if(valor < arvore->info)
conta(arvore->esq, valor);
if(valor > arvore->info)
conta(arvore->dir, valor);
}
}
你应该归还叶子中的发现。
int conta(pNodo* arvore, int valor) {
if(arvore == NULL) {
return 0;
}
else {
if(arvore->info == valor) {
return(conta(arvore->dir, valor) + 1);
}
if(valor < arvore->info)
return conta(arvore->esq, valor); /* add "return" here */
if(valor > arvore->info)
return conta(arvore->dir, valor); /* add "return" here */
}
}