Java 在二叉树中查找给定密钥的父级

Java 在二叉树中查找给定密钥的父级,java,tree,binary-tree,Java,Tree,Binary Tree,我试图在二叉树(不是BST)中找到给定密钥的父级。这段代码总是返回null,有人能说出问题出在哪里吗?我认为问题是,即使我返回parent,它仍然会返回null。 谢谢:) 您将递归到左、右子树中,但当这些调用找到匹配项时,您将忽略它。而是做一些类似的事情 public Node getParent(int key, Node parent, Node r) { if (r!=null) { if (r.iData == key) return p

我试图在二叉树(不是BST)中找到给定密钥的父级。这段代码总是返回null,有人能说出问题出在哪里吗?我认为问题是,即使我返回parent,它仍然会返回null。 谢谢:)


您将递归到左、右子树中,但当这些调用找到匹配项时,您将忽略它。而是做一些类似的事情

public Node getParent(int key, Node parent, Node r) {
    if (r!=null) {
        if (r.iData == key)
            return parent;
        Node p;
        p = getParent(key, r, r.leftChild);
        if (p != null)
            return p;
        p = getParent(key, r, r.rightChild);
        if (p != null)
            return p;
    }
    return null;
}
public Node getParent(int key, Node parent, Node r) {
    if (r!=null) {
        if (r.iData == key)
            return parent;
        Node p;
        p = getParent(key, r, r.leftChild);
        if (p != null)
            return p;
        p = getParent(key, r, r.rightChild);
        if (p != null)
            return p;
    }
    return null;
}