我做了我自己的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