我想我的方式是我的代码,所以你不需要深入研究,只需检查第一行代码。我无法理解错误发生的地方有什么问题。
public boolean add(E x) {
System.out.println(x);
System.out.println(root);
if(root.equals(null)){
root.equals(x);
return true;
}
if(root.equals(x)){
return false;
}
BinaryNode<E> save = root; //create new nod copy of root
while((!save.left.equals(x)) && (!save.left.equals(null))){ //check so save.nex isnt x and that save.next exists
save=save.left;
}
if(save.left.equals(null)){
save = root; //puts save back to root again
while((!save.right.equals(x)) && (!save.right.equals(null))){
save=save.right;
}
if(save.right.equals(null)){
save.right.equals(x);
return true;
}
} return false;
}
我在第if(root.equals(null)){
行收到错误这只是一个if语句,我不是试图访问不存在的东西?
答案 0 :(得分:1)
如果root
等于null
,那么 试图通过调用equals
来访问不存在的内容方法就可以了。只需使用if(root == null)
。