所以我有一个链接列表,我希望能够删除第一次出现的数字,
我正在尝试使用递归,但遗憾的是我最终所做的只是能够删除列表的头部和
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;
}
}
我有三个不同的类,一个用于此末尾的空列表,一个声明此方法的类,以及实际列表。
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;
}