我尝试在Word频率列表中搜索节点并在其中返回,否则返回null。但我的方法只保留返回null,我无法弄清楚原因!有人可以告诉我,如果我错过了什么吗?
private class Node implements Comparable<Node>{
private E key;
private int count;
private Node next;
Node(E item){
key = item;
count = 1;
next = null;
}
}
private Node find(Node n){
Node current = first;
while(current!=null && !current.equals(n)){
current=current.next;
}
if(current!=null)
return current;
else
return null;
}
答案 0 :(得分:0)
正如@pyepye在评论中所说,您为每个创建的节点设置Node next
为null
。无论您何时调用find
方法,都应事先创建链接列表,并确保下一个节点指向实际的下一个节点。
您的程序返回null
的原因可能是由于此错误。
编辑:
另一个可能的错误是您正在使用equals
方法。 Comparable
接口包含compareTo
方法,而不是equals
方法。可能equals
类中的Node
方法无法正常运行,因此您的find
方法实际上并未找到任何正确的节点。
所以使用
while (current!=null && current.compareTo(n)!=0)