查找节点并插入

时间:2016-06-23 18:47:50

标签: java

我尝试在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;
}

1 个答案:

答案 0 :(得分:0)

正如@pyepye在评论中所说,您为每个创建的节点设置Node nextnull。无论您何时调用find方法,都应事先创建链接列表,并确保下一个节点指向实际的下一个节点。

您的程序返回null的原因可能是由于此错误。

编辑:

另一个可能的错误是您正在使用equals方法。 Comparable接口包含compareTo方法,而不是equals方法。可能equals类中的Node方法无法正常运行,因此您的find方法实际上并未找到任何正确的节点。

所以使用

while (current!=null && current.compareTo(n)!=0)