Trouver le parent d'un nœud dans un arbre Binaire

Je suis en train d'écrire une méthode pour trouver le parent d'un nœud donné. Voici ma méthode.

J'ai créé un BinaryNode objet r qui, initialement, se réfère à la racine.

    public BinaryNode r=root;
    public BinaryNode parent(BinaryNode p){
    BinaryNode findParent=p;        
        if (isRoot(findParent) || r==null){
                return null;
        }
        else{
            if(r.left==findParent || r.right==findParent)
                return r;
            else{
                if (r.element<findParent.element)
                    return parent(r.right);
                else
                    return parent(r.left);
            }
        }
    }  

Ce code ne fonctionne pas correctement .Je pense que c'est parce que r est un objet null.Parce que quand je ne

if (isRoot(findParent) || r==null){
                System.out.println(r==null);
                return null;}  

r==null évalue à true.Comment arriver parce que j'ai inséré les nœuds comme

public static void main (String args[]){
        BinaryTree t=new BinaryTree();
        t.insert(5);
        t.insert(t.root,4);
        t.insert(t.root,6);
        t.insert(t.root,60);
        t.insert(t.root,25);
        t.insert(t.root,10);  

et la racine n'est pas null.

Peut quelqu'un s'il vous plaît signaler pourquoi cela se produit et si ce que je suis en train de faire afin de trouver le nœud parent est logiquement correct.

Comment appelez-vous les trouver parent mehtod? Quels arguments avez-vous?
findParent n'est pas une méthode.C'est un binaryNode qui stocke le nœud que nous avons besoin de trouver des parents de
Désolé, je voulais dire le parent(BinaryNode) méthode
Je veux trouver le parent du nœud situé à gauche de la racine, la méthode peut être appelée la " mère(de la racine.gauche)`
Avez-vous vérifié si isRoot(findParent) évalue à true?

OriginalL'auteur sam_rox | 2014-05-25