晚上好
我正在尝试自己实现一个链接列表,当我想创建搜索方法时遇到了问题。显然,当您要搜索节点(将用于在某个位置插入节点)时,您将必须评估一些值以查看您是否到达了正确的位置。考虑到我的节点只有一个数据字段作为标识符,除了使用它之外,我没有看到任何其他方法。但是,由于数据字段不是唯一的,因此可能有多个节点符合条件。
考虑以下列表:5, 7, 2, 8, 3, 1, 6, 5, 8, 4, 2。当我想在列表中的某处添加节点时(例如:在值为 8 的节点之后),他将遍历列表并在第一次出现“8”之后添加新节点。如果我想在第 2 个 8 之后插入它应该怎么做?
这甚至可以通过单链表实现吗?
除此之外,我想对我的“removeLast()”方法有一些反馈,它似乎没有做我想做的事情(从列表中删除最后一个节点)。我知道如果列表只有 1 个值,我的代码不应该工作,我会在删除最后一个节点的一般代码工作后立即调查。
我的代码可以在这里找到。
用代码编辑:
public class SingleLinkedList {
public void deleteLast() {
if (lastNode != null) {
Node currentNode = firstNode;
while (currentNode != null) {
Node nextNode = currentNode.getNextNode();
Node nextNextNode = nextNode.getNextNode();
if (nextNextNode == null) {
nextNextNode = null;
lastNode = nextNode;
}
}
listSize--;
}
}
}