したがって、単一リンクリストの抽象データ型があり、テストコードのこの部分を実行するとコンパイラがスタックします。
test.removeDuplicates();
System.out.println("removeDuplicates() has been run, check following output for counts of 3");
test.print();
与えられたリストから重複を削除する私の方法は次のとおりです
public void removeDuplicates()
{
if (head == null) return;
Node iter = head;
while (iter != null)
{
Node currNode = iter;
while(currNode != null && currNode.next != null)
{
if(iter.value == currNode.next.value)
{
currNode.next = currNode.next.next;
nItem--;
}
currNode = currNode.next;
}
}
}
whileループがリスト全体をループし、ポインターに値をスキップさせて重複する値を削除することで、これを考えました。
どうやらwhileループの1つが終了せず、私の最後の値がnullへのポインターを取得していないようですが、その理由はわかりません。