我在Java Lab分配上遇到困难。
这是我的代码和指令:
如果不存在钥匙,则应该 返回上一个节点。如果没有以前的(key == aaron), 返回null。
protected Node<K, V> find (K key, Node start) {
for (Node<K, V> node = start == null ? head : (Node<K, V>) start;
node != null; node = node.next){
if(key.equals(node.key)){
return node;
}
else if(!key.equals(node.key)){
node=node.next;
}
else{
return null;
}
}
return tail;
}
c e g i k m o q s u w y
2 4 6 8 10 12 14 16 18 20 22 24
这是linkedlist。
我的输出是C E G I K M O Q S U W Y2 4 6 8 10 12 14 16 18 20 22 24
containskey(a)= false
containskey(c)= true
containskey(l)= false
containskey(m)= false
containskey(y)= true
containskey(z)= false
但对于m,它也应该返回true我如何解决此问题?
您可以使用双链接列表或(这意味着您必须在节点类中进行更改)另一个是当指向头部的指向头后,另一个必须节点,
node p = null ;
node q = head ;
每次循环您将制作
p = q and q = q.next();
所以,如果您找不到钥匙,您将返回P如果找到它,您将返回Q。