Ich bekomme immer eine Null-Zeiger-Ausnahme. jede Hilfe, warum das so ist, wäre großartig. Ich glaube, dass das Problem in meiner Methode find (String name, Node root) liegt. Jede Hilfe mit, wie man das repariert, wäre großartig. DankeNull-Zeiger-Ausnahme in einem Java-Binär-Suchbaum
public class FamilyTree{
private Node root;
private class Node
{
private String name;
private Node father;
private Node mother;
private Node(String name, Node father, Node mother)
{
this.name = name;
this.father = father;
this.mother = mother;
}
}
public FamilyTree(String ego)
{
this.root = new Node(ego, null, null);
}
private Node find(String name)
{
return find(name, root);
}
private Node find(String name, Node root)
{
if(name != null) {
if (root.name.equals(name)) {
return root;
} else {
find(name, root.father);
find(name, root.mother);
}
}
return null;
}
public void addParents(String ego, String father, String mother)
{
if (find(ego) == null)
{
throw new IllegalArgumentException();
}
else
{
find(ego).father = new Node(father,null, null);
find(ego).mother = new Node(mother, null, null);
}
}
public boolean isDescendant(String ego, String ancestor)
{
if(find(ego) == null ||find(ancestor) == null)
{
return false;
}
else
{
return isDescendant(find(ego), find(ancestor));
}
}
public boolean isDescendant(Node root, Node ancestor)
{
if(ancestor != null)
{
if (root.equals(ancestor))
{
return true;
}
}
return false;
}
}
Was ist Ihre spezifische Frage? Ihre Frage kann als "keine echte Frage" geschlossen werden, es sei denn, Sie sind spezifischer. Wir sind nicht hier, um Ihnen zu helfen, Ihren Code für Sie zu schreiben. – GreenGiant
Von welcher Linie kommt Ihre Nullzeiger-Ausnahme? Könnten Sie Ihren Stack-Trace des Fehlers veröffentlichen? – GreenGiant
Es ist eine Frage tief drin drin vergraben. Es wurde viele Male beantwortet. "Private Node find (String, Node) gibt jedoch null zurück;" –