我正在制作一个链表类,我试图实现这个contains()
方法。
我有head
和tail
哨兵节点,所以我有从head.next
开始的循环。length
是列表的大小。我能给你们的只有:O
public boolean contains(T entry) {
boolean found = false;
Node current = head.next;
for (int i = 0; i < length; i++) {
if (current.equals(entry)) {
found = true;
}
current = current.next;
}
return found;
}
问题是你正在比较Node
和T
,如果你的equals方法正确地满足正确的合约,将始终返回false为不同的类。
。重新检查这一行:
if (current.equals(entry)) {