javaのLinkedListから項目を削除しようとしています。このリストは私によって実装されており、私はJava APIを使用していません。私が直面している主な問題は、再帰コーディングで常に失われているので、リカバリであることです。APIを使用せずにjavaのLinkedListから特定の項目を削除する
class List{
int N;
List next;
List current;
List(int N){
this.N =N;
this.next = null;
}
@Override
public String toString() {
String o = "";
List curr = this;
while(curr != null){
o += curr.N+"-->";
curr = curr.next;
}
return o+"TAIL";
}
}
実装方法:
private static List Remove(List L,int N){
if(L == null || L.next == null)
return L;
List current = L;
List previous = null;
while(current != null){
if(current.N == N){
current = current.next;
if(previous == null)previous = current;
else{
previous.next = current;
}
break;
}else{
previous = current;
current = current.next;
}
}
return previous;
}
が入力 - 私は取得しています
List list1 = new List(1);
list1.next = new List(2);
list1.next.next = new List(3);
list1.next.next.next = new List(4);
list1.next.next.next.next = new List(5);
list1.next.next.next.next.next = new List(6);
list1.next.next.next.next.next.next = new List(7);
System.out.println("Before Removal "+list1.toString());
System.out.println("After Removal "+Remove(list1,3));
出力がある - 除去前
- 1 - > 2 - > 3 - →4→5→6→7→TAIL
- 取り外し2後 - > 4 - > 5 - > 6 - > 7 - 私は
current = current.next
または参照次に設定されている設定していたように> TAILここ
Iが値1を失ってい値。だから間違いなく私は、異なる参照に格納されたデータの表示にいくつか問題があります。
@bunta私の更新を見てください、それが助けてくれることを願っています: –
説明のおかげで –