誰でも次の削除方法が機能しない理由を説明できますか?私は削除しようとしている値で無限ループを作成するように見えます。リンクされたリストをループし、メソッドに渡された値のインスタンスをすべて削除し、削除されたノードの総数を返します(return num;
)。リンクされたリスト削除メソッド
public int delete(T value)
{
int num = 0;
ListNode<T> trav = head;
ListNode<T> next = head.getNext();
while(trav != null) {
if(trav.getValue().compareTo(value) == 0) {
trav = next;
num++;
}
if(next.getValue().compareTo(value) == 0) {
trav = next.getNext();
num++;
}
trav = trav.getNext();
}
return num;
}
デバッガを使用してコードをステップ実行することはできますが、いくつかのことが明らかに間違っています。 a)頭を更新することは決してありません。b) 'next'を変更することはないので、' trav = next; 'を実行すると、2番目の要素に戻ります。 c)実際にノードを削除しないでください。 d) 'next'がポイントを持っていないかどうかを確認する' –