如何在 Java 中的循环链表中设置下一个值?
How to set next value in a Circularly Linked List in Java?
这是我目前所拥有的:
public void insert(int position, ValueNode value) {
if (position == 1) {
this.nextInRow = value;
}
ValueNode current = this.getFirst();
if (position > 1) {
current.setNext(current.next);
}
value.setNextInRow(current.getNext());
}
正在使用第一个 if 语句正确设置头节点。在这个列表中,我们已经知道了位置,所以我认为我们不需要 while 循环,因为我们知道将新节点放在哪里。
我创建了一个名为 current 的临时节点来保存下一个节点指针,但现在它将指针设置为空。我的问题是我不知道将下一个节点指针指向哪里。任何帮助将不胜感激。
区分做一个有值的节点和设置下一个节点操作。
你的数据结构可以是这样的:
class Node {
int val;
Node next;
Node previous;
//setters and getters and constructors
}
1) 对于所有新值应该有一个节点
Node createNode(int val) {
Node newNode = new Node(val);
newNode.next = null;
newNode.previous = null;
return newNode;
}
2) 从根开始定位新节点或持有当前节点设置它下一个
currentNode.setNext(Node newNode);
//iterate the currenNode with newNode
currentNode = newNode;
...
// implement the setNext and mark current as previous for newNode
void setNextNode(Node newNode) {
this.next = newNode;
newNode.setPrevious(this);
}
这是我目前所拥有的:
public void insert(int position, ValueNode value) {
if (position == 1) {
this.nextInRow = value;
}
ValueNode current = this.getFirst();
if (position > 1) {
current.setNext(current.next);
}
value.setNextInRow(current.getNext());
}
正在使用第一个 if 语句正确设置头节点。在这个列表中,我们已经知道了位置,所以我认为我们不需要 while 循环,因为我们知道将新节点放在哪里。
我创建了一个名为 current 的临时节点来保存下一个节点指针,但现在它将指针设置为空。我的问题是我不知道将下一个节点指针指向哪里。任何帮助将不胜感激。
区分做一个有值的节点和设置下一个节点操作。
你的数据结构可以是这样的:
class Node {
int val;
Node next;
Node previous;
//setters and getters and constructors
}
1) 对于所有新值应该有一个节点
Node createNode(int val) {
Node newNode = new Node(val);
newNode.next = null;
newNode.previous = null;
return newNode;
}
2) 从根开始定位新节点或持有当前节点设置它下一个
currentNode.setNext(Node newNode);
//iterate the currenNode with newNode
currentNode = newNode;
...
// implement the setNext and mark current as previous for newNode
void setNextNode(Node newNode) {
this.next = newNode;
newNode.setPrevious(this);
}