Java 当尝试插入最大值时,有序链表提供空指针
这是一个用于有序链接列表的插入方法,最小的整数指向头部。在我尝试插入一个比我第一次添加的值更大的值之前,这个方法一切都很顺利。当我尝试添加一个新的更大的值时,它会给出一个空指针异常,这是它唯一一次给出它。当我检查它时,我觉得我的逻辑很好,有人有什么想法吗?你应该改变里面条件的顺序Java 当尝试插入最大值时,有序链表提供空指针,java,Java,这是一个用于有序链接列表的插入方法,最小的整数指向头部。在我尝试插入一个比我第一次添加的值更大的值之前,这个方法一切都很顺利。当我尝试添加一个新的更大的值时,它会给出一个空指针异常,这是它唯一一次给出它。当我检查它时,我觉得我的逻辑很好,有人有什么想法吗?你应该改变里面条件的顺序 public void insert(int data) { Node newNode = new Node(data); Node current =
public void insert(int data)
{
Node newNode = new Node(data);
Node current = head;
Node prev = null;
if(head == null)
{
head = newNode;
}
else
{
while(data > current.data && current != null)
{
prev = current;
current = current.next;
}
if(prev == null)
{
newNode.next = current;
head = newNode;
}
else
{
prev.next = newNode;
newNode.next = current;
}
}
应该如此
while(data > current.data && current != null)
这是因为Java&&operator从左边开始检查,所以无论current是否为null,它都会尝试调用此上的数据当我检查它时,我觉得我的逻辑很好,有人有什么想法吗?-很明显,你知道你的逻辑不好,否则你就不会有这个问题。如果这是我的代码和问题,我会使用IDE的调试器,通过调试器运行代码,检查字段,找到错误,然后解决它。
while(current != null && data > current.data)