【发布时间】:2020-01-29 00:20:03
【问题描述】:
我正在实现一个整数链接列表,我想知道找到给定值并将其从列表中删除的最有效方法是什么。这是我目前所拥有的:
public class LinkedList {
Node head;
public void insert(int value){
Node newNode = new Node();
newNode.data = value;
newNode.next = null;
if(head==null){
head = newNode;
} else {
Node iterator = head;
while(iterator.next!=null){
iterator = iterator.next;
}
iterator.next = newNode;
}
}
public void display(LinkedList list){
Node iterator = head;
while (iterator!=null){
System.out.println(iterator.data);
iterator = iterator.next;
}
}
public void remove(LinkedList list, int value){
Node iterator = head;
while(iterator!=null){
if(iterator.next.data == value){
iterator.next = iterator.next.next;
} else{
iterator = iterator.next;
}
}
}
}
public class Node {
int data;
Node next;
}
【问题讨论】:
-
会抛出 NPE。
-
也许你应该从参数中删除 LinkedList 列表,因为你不使用它。
-
正确,我得到了 NPE,我的代码有什么问题?
-
iterator.next可以为空,iterator.next.next也可以为空。另外,head是什么?它没有在您的代码中定义。 -
我刚刚添加了所有内容,谢谢