【发布时间】:2013-03-27 23:08:49
【问题描述】:
我创建了自己的 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 次p>
现在我尝试在我的 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();
}
}
【问题讨论】:
-
在什么情况下不起作用?举例说明输入和预期输出和实际输出。
-
length()方法有什么作用? -
list.add(3); list.add(2); list.add(5); list.add(3); list.add(3); list.add(8);我想有 4 个不同的节点,但我得到了 5 个
-
list.add(x)是添加到开头还是结尾。 -
它添加在链表的末尾
标签: java collections linked-list nodes