独自の 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 つの異なるノードを提供することを想定していますが、ノード 3 が 2 回カウントされるため、5 になります。
今、私は j ループで 2 番目のノードを使用して移動しようとしましたが、同じ入力に対して、4 ではなく 2 が返されます。
ここに私が試した新しいコードがありますが、まだ機能していません:
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();
}
}