双链表 - RemoveFirst方法

时间:2018-05-10 14:43:45

标签: java linked-list doubly-linked-list

我需要帮助以下代码:

public boolean remove(Integer value) {

    if (isEmpty()) {
        throw new NoSuchElementException();
    }
    if (!isEmpty()) {
        if (head == tail) {
            head = tail = null;
        }
    } else {


    }

    size--;

    return false;
}

这是我的任务:

"从此列表中删除第一次出现的指定值"

这是一种双重链接列表的方法。

到目前为止,我认为我做对了,但我仍然错过了"否则"部分,我不知道该放在里面......

我还有一个带有构造函数和getter和setter方法的类。

这是我的节点类:

public class ListElement {

    private Integer value;
    private ListElement next;
    private ListElement prev;

    public ListElement(ListElement prev, Integer value, ListElement next) {
        this.value = value;
        this.next = next;
        this.prev = prev;
    }

    public Integer getValue() {
        return value;
    }

    public ListElement getNext() {
        return next;
    }

    public ListElement getPrev() {
        return prev;
    }

    public void setValue(Integer value) {
        this.value = value;
    }

    public void setNext(ListElement next) {
        this.next = next;
    }

    public void setPrev(ListElement prev) {
        this.prev = prev;
    }

}

1 个答案:

答案 0 :(得分:0)

我通过函数签名假设您要删除具有特定值的元素。您需要找到该节点并将其删除:

StringBuffer output = new StringBuffer();
Pattern repeatedChars = Pattern.compile("(?:(\\w)(?:\\1\\1)+|(\\w)\\2+)(?!\\1|\\2)");
Matcher m = repeatedChars.matcher(s);
while(m.find()) m.appendReplacement(output, "$1");
m.appendTail(output);
System.out.println(output);