Se intendi magari si capisce meglio...
codice:
tree trova (tree t, Tipo d) {
  tree temp;

  if (t == NULL || t->dato == d) {
    return t;
  }

  temp = trova(t->left);

  if (temp == NULL) {
    return trova(t->right);
  } else {
    return temp;
  }
}
Originariamente inviato da miki miki
pero' non capisco come funziona la ricorsione!!
secondo me una volta chiamata per la prima volta trova con argomento al puntatore a sinistra non riesce piu' a cercare il sottoalbero a destra!!!
Viene chiamato trova(t->left). Prima o poi però quel metodo restituirà il controllo e a quel punto si controlla se temp vale NULL ed eventualmente si chiama trova(t->right)...