我在LinkedList中搜索一个元素,当元素确实在列表中时,输出是正确的。但是,测试相反的情况,当搜索Null或元素不在列表中时,NPE会发生。请帮忙,谢谢!
public boolean find(E e){
Node current=head;
while(current.item !=null){
if(e.equals(current.item)){
System.out.println("True");
return true;
}
current=current.next;
}
System.out.println("False");
return false;
}
答案 0 :(得分:2)
while
语句应为while(current !=null)
答案 1 :(得分:1)
可能需要在while循环中更改条件:
public boolean find(E e){
Node current=head;
while(current != null){
if( (current.item != null) && (e.equals(current.item)){
System.out.println("True");
return true;
}
current=current.next;
}
System.out.println("False");
return false;
}
同时检查节点中的项目是否不是null
。