我试图在二叉树(而不是BST)中找到给定键的父级。此代码始终返回null,有人可以告诉问题在哪里吗?我认为问题是即使我返回父,它仍将返回null。 谢谢:))
public Node getParent(int key,Node parent, Node r){
if(r!=null){
if(r.iData==key)
return parent;
getParent(key, r, r.leftChild);
getParent(key, r, r.rightChild);
}
return null;
}
答案 0 :(得分:2)
您正在递归左右子树,但是当这些调用找到匹配时,您只需忽略它。而是做像
这样的事情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;
}