作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
public void insertElementBefore(E element, E newElement) {
MyNode<E> current = head;
if (head != null) {
while (current != null) {
if (current.data.equals(element)) {
MyNode<E> n = new MyNode<E>(newElement);
n.next = current.next;
current.next = n;
return;
}
current = current.next;
}
}
}
这就是我的目的。我无法在预期元素之前插入 newElement 。似乎无法弄清楚它的语法。我已经修改它有一段时间了,我能得到的最好的结果就是像现在一样将其插入到元素之后
任何帮助将不胜感激
最佳答案
如果是单个链表,您将需要两个临时节点:
MyNode<E> current
这将代表单链表中的当前节点。MyNode<E> prev
它将表示单链表中当前节点之前的节点。然后,您必须在这些节点之间添加新节点。如果您没有prev
节点,然后设置 current
时节点作为新节点的下一个节点,则current
之前的所有节点将会丢失。
这就是您的代码的样子:
public void insertElementBefore(E element, E newElement) {
MyNode<E> current = head;
//check here
MyNode<E> prev = null;
if (head != null) {
while (current != null) {
if (current.data.equals(element)) {
MyNode<E> n = new MyNode<E>(newElement);
n.next = current;
//check here
if (prev != null) {
prev.next = n;
}
return;
}
//check here
prev = current;
current = current.next;
}
}
}
关于java - 如何在链表中的另一个元素之前插入 和 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26365140/
我是一名优秀的程序员,十分优秀!