我创建了自己的 Node 类和自己的 LinkedList 类,我想构建一个函数来计算 LinkedList 中有多少不同的 Node。
我已尝试使用此代码,但它不起作用:
for (int i = 0; i < quantityOfNode(); i++) {
boolean isDistinct = true;
for (int j = 0; j < i; j++) {
if (node.getInfo().equals(node.getNext().getInfo())) {
isDistinct = false;
}
}
if (isDistinct) {
nbDistinct++;
}
if (node.getNext().getNext() != null) {
node= node.getNext();
}
}
例子:
list.add(3);
list.add(2);
list.add(5);
list.add(3);
list.add(3);
list.add(8);
这应该给我 4 个不同的节点,但我得到 5 个,因为节点 3 被计算了 2 次
现在我尝试在我的 j 循环中使用第二个节点旅行,对于相同的输入,它现在给我 2 而不是 4
这是我尝试过但仍然无法正常工作的新代码:
for (int i = 0; i < quantityOfNode(); i++) {
boolean isDistinct = true;
for (int j = 0; j < i; j++) {
if (node.getInfo().equals(node2.getInfo())) {
isDistinct = false;
}
if (node2.getNext() != null) {
node2 = node2.getNext();
}
}
if (isDistinct) {
nbDistinct++;
}
if (node.getNext() != null) {
node= node.getNext();
}
}