gpt4 book ai didi

java - Java 中双链表的冒泡排序

转载 作者:太空宇宙 更新时间:2023-11-04 10:03:27 25 4
gpt4 key购买 nike

我正在尝试为双链表实现冒泡排序,但我得到 NullPointerException .

这是代码:

public void bubbleSort()
{
DLLNode<E> tmp = this.first; // (1)
DLLNode<E> tmp2 = null; // (1)
boolean flag = true;
while(flag)
{
// (2)
flag = false;
while(tmp.succ!=null)
{

if(tmp.element2.compareTo(tmp.succ.element2)<0)
{
tmp2.element2 = tmp.element2;
tmp.element2 = tmp.succ.element2;
tmp.succ.element2 = tmp2.element2;
tmp2.element1 = tmp.element1;
tmp.element1 = tmp.succ.element1;
tmp.succ.element1 = tmp2.element1;
flag = true;
}
tmp = tmp.succ;
}
}
}

另一件事:我使用的这个方法我认为只会迭代列表一次,并且不会在开始时返回。我以为搬家tmptmp2来自(1)(2)就能解决问题。但我仍然收到 NullPointerException .

最佳答案

这行似乎是问题所在:

DLLNode<E> tmp2 = null; // (1)

在这里,您创建了一个空指针。几行后,在没有对 tmp2 进行任何进一步分配的情况下,您尝试使用此空指针访问 tmp2.element2,这会导致程序崩溃:

tmp2.element2 = tmp.element2;

重新评估您的设计并确保所有对象在尝试访问其属性或方法之前都已初始化。

关于java - Java 中双链表的冒泡排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53227973/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com