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

时间:2015-03-22 12:25:44

标签: java linked-list singly-linked-list

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

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();
    }
}
}

Element.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。我已经尝试过这是我方法的最新版本。任何人都可以帮助我,或者至少解释一下应该怎么做?

1 个答案:

答案 0 :(得分:0)

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