gpt4 book ai didi

java - 如何在链表中的另一个元素之前插入 和 元素

转载 作者:行者123 更新时间:2023-12-01 22:39:47 25 4
gpt4 key购买 nike

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com