私は迷っており、誰かがここで私を助けてくれることを本当に願っています.重複した番号ノードを見つけて重複を削除する関数を作成することになっています. コード全体を実行するたびに、内部で無限ループに陥りますwhile(current.next != null)
。
私の主な質問は、私の問題がにあることを知っているということif (tester.data == current.data)
です。彼らがテストも比較もしない理由がわかりません(int)。これが漠然とした質問である場合は申し訳ありません。私は何時間も困惑して画面を見つめてきました。
public void removeDuplicate()
{
// removes all duplicate nodes from the list
Node tester = head;
Node previous = head;
Node current = head.next;
while (tester.next != null){
int i = 0;
while(current.next != null){
System.out.println("Stuck here3");
if (tester.data == current.data){
Node tempNode = current.next;
previous.next = tempNode;
current = tempNode;
size--;
System.out.println("Stuck here2");
break;
}
else{
previous = current;
current = current.next;
}
}
System.out.println("Stuck here1");
tester = tester.next;
current = tester.next;
}
}