Bienvenue! J'ai une méthode statique publique récursive nommée moins qui prend un nœud d'arbre (un arbre binaire original, pas vraiment un arbre de recherche) et un paramètre int qui retourne si toutes les valeurs dans l'arbre sont inférieures à l'entier. Donc, je voudrais utiliser un public class TN { public int value; public TN left, right; public TN(int v, TN l, TN r) {value = v; left = l; right = r;} }
Alors, ma méthode ressemblerait à ceci:Arbre binaire récursif Java
public static boolean less(TN s, int toFind){
if (s == null)
return true;
else{
if(s.value <= toFind)
return less(s.left, toFind) && less(s.right, toFind); // right here do I return true? or do I have to somehow recall recursively
else
return false;
}
Je me demandais si cela avait raison ou suis-je manque quelque chose ??? Dois-je retourner vrai et faux ??
Donc, pour l'instruction else, je peux juste retourner la méthode d'appel au lieu de retourner faux droit? – Roxy
Eh bien, vous aurez besoin d'avoir une variable relativement globale que vous vérifiez avant de vous branchez. Par exemple. "if (found == true) renvoie false;", puis remplace le else par "else {found = true; return false}". De cette façon, si un nombre est trouvé supérieur au nombre que vous recherchez, il sera défini sur true. Ensuite, toutes les autres branches reviendront également. Vous devez juste vous assurer que le même "trouvé" est visible à chaque appel de la fonction. – CookieOfFortune