这可以删除Linkedlist工作的方法吗?

时间:2015-12-22 22:27:01

标签: java linked-list

我问过我的朋友,他们说你永远不会把电流带到上一个节点,当我问他们为什么没有给我一个明确的理由时,有人能帮助我吗?

str(group)

2 个答案:

答案 0 :(得分:0)

如果您想要改变现有链接列表并删除元素,那么基本思路就是合理的。虽然在while之后缺少花括号,并且在第一个tmp.next时会出现NullPointException。

答案 1 :(得分:0)

通常,remove方法将传递要删除的节点中的数据。你的问题中不清楚current应该指出什么。您的代码不支持删除列表的头部或空列表(空头)。

这是一个潜在的实施方案:

public boolean remove(T value) {
    if (head == null) {
        return false;
    } else if (head.value.equals(value)) {
        head = head.next;
        return true;
    } else {
        Node<T> current = head;
        while (current.next != null) {
            if (current.next.value.equals(value)) {
                current.next = current.next.next;
                return true;
            }
            current = current.next;
        }
        return false;
    }
}

如果current变量最终指向被删除节点之前的节点,那么就会出现问题:如果要移除列表的头部会发生什么?