如何在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的临时节点来保存下一个节点指针,但现在它将指针设置为null。我的问题是我不知道下一个节点指针指向哪里。任何帮助都会非常感激。

区分有值创建节点和设置下一个节点的操作。

你的数据结构可以像这样:

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); 
 }

相关内容

  • 没有找到相关文章

最新更新