Comment retourner rien d'une fonction renvoyant la valeur?

J'ai un arbre de recherche binaire, et je veux supprimer un nœud.

J'ai besoin d'obtenir de ses parents, alors j'ai écrit une fonction:

private BSTreeNode<T> getParent(BSTreeNode<T> root, BSTreeNode<T> node) {
        if(root == null) 
            return null;
        if(node.element().lessThan(root.element())) {
            if(root.getLeft() != null && root.getLeft().element().equal(node.element())) 
                return root;
            else
                getParent(root.getLeft(), node);
        } else {
            if(root.getRight() != null && root.getRight().element().equal(node.element()))
                return root;
            else
                getParent(root.getRight(), node);
        }
    }

Contrairement au C/C++, Java me donne l'erreur suivante:

This method must return a result of type BSTreeNode<T>

Il me force à retourner une valeur dans la dernière ligne de la fonction.

Comment puis-je résoudre ce problème dans le cadre de ma fonction?

Utilisation return getParent...
et utiliser les paramètres?
Je ne sais pas, c'est une partie de votre conception. Le point est votre méthode doit toujours retourner quelque chose si votre type de retour est différent de celui void.
Compilateurs C et C++ ne peut pas vous forcer à retourner une valeur non-nulle types de retour, mais cela ne veut pas dire qu'il est "autorisé". Si la fonction se termine sans un retour (ou exception), le résultat est indéfini. Java est tout particulièrement vif sur l'application de cette règle.
Oh, ma faute. J'ai confondu une minute que j'ai de la valeur de retour dans tout le reste-si les blocs. merci beaucoup!

OriginalL'auteur Billie | 2013-12-16