如何在 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); 
 }