我做了我自己的Node类和我自己的LinkedList类,我想建立一个函数来计算我的LinkedList中有多少个不同的节点。如何统计我的链表中有多少个不同的节点?
我曾尝试与此代码,但它不工作:
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);
这是supose给我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();
}
}
以何种方式它不工作?给出一个输入和预期输出以及实际输出的例子。 – Patashu 2013-03-27 23:10:49
'length()'方法做了什么? – 2013-03-27 23:12:52
list.add(3); \t \t list.add(2); \t \t list.add(5); \t \t list.add(3); \t \t list.add(3); \t \t list.add(8); 我有4个不同的节点,但我得到5 – pharaon450 2013-03-27 23:13:11