java - java中如何删除单向链表中的重复元素?

标签 java linked-list singly-linked-list

我已经实现了自己的单链表,但在删除列表中的重复元素时遇到问题。 这是我的实现:

列表.java:

public class List {
private Element first;
private int size;

public void removeRepetitive()
{
    Element e1 = first;
    Element e2 = e1.getNext();

    while(e1.getNext() != null && e2.getNext() != null)
    {
        while(e2.getNext() != null)
        {
            if(e1.getCard().equals(e2.getCard()))
            {
                remove(e2.getCard());

            }
            e2 = e2.getNext();
        }
        e1 = e1.getNext();
        e2 = e1.getNext();
    }
}
}

元素.java:

package lists;

public class Element {
private Karta karta;
private Element next;

public Element(Karta k)
{
    karta = k;
    next = null;
}
public Element(Karta k, Element e)
{
    karta = k;
    next = e;
}
public Karta getCard()
{
    return karta;
}
public Element getNext()
{
    return next;
}
public void setNext(Element e)
{
    next = e;
}
public void setCard(Karta k)
{
    karta = k;
}

我设法编写了简单的删除方法,但在此示例中我不断遇到 NullPointerException。我已经尝试了一切,这是我的方法的最新版本。谁能帮助我或至少解释一下应该如何完成?

最佳答案

当您尝试在已删除的节点上运行 getNext 时,会发生 NPE。

关于java - java中如何删除单向链表中的重复元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29194332/

相关文章:

java - qrgen 和 zxing 库出现 java.lang.NoSuchMethodError 异常

c - 链表元素不见了?

c - 使用链表从文件中获取数据

c - 隐藏类型的性质

java - 如何以编程方式打印 Jasper 报告

java - 搜索将对象之间的双向链接转换为 JSON 格式的正确方法

java - 正则表达式替换java中a标签中href属性后的=

c++ - 使用从列表中弹出的 pthreads 填充大小的列表

c - 创建列表过程中出现的问题

C - 当单个链表中只有 1 个元素时删除节点