だから私は番号の最初の出現を削除できるようにしたいリンクリストを持っています、
再帰を使用しようとしていますが、残念ながら、リストの先頭を削除して、
public List remove(int num){
if(value == num) {
return next.remove(value);
}else{
next = next.remove(value);
return this;
}
}
新しいリストを返す必要があることはわかっていますが、回避しようとしているノードをどのように正確に取り除くか、それを回避する方法があるので、次のうなずきに進みます。
編集。実際のコードを更新します。
class List{
int value; //value at this node
List next; //reference to next object in list
public List(int value, List next){
this.value = value;
this.next = next;
}
}
3つの異なるクラスがあります。1つはこの最後の空のリスト用で、1つはこのメソッドを宣言するクラスで、実際のリストです。
public static List makeSample() {
EmptyList e = new EmptyList();
List l1 = new List(5, e);
List l2 = new List(4, l1);
List l3 = new List(3, l2);
List l4 = new List(3, l3);
List l5 = new List(2, l4);
List l6 = new List(1, l5);
return l6;
}