使用单链表创建编辑方法



是否可以在链表中编辑特定节点的数据?我开始写一个方法:

public void edit(int index, String data) {
Node pre = head;
Node temp = null;
for(int i=1; i <= index; i++) {
  temp = pre;
  pre = pre.next();
}
temp.next(new Node(data));
pre.data(data);
}

我的列表中有四个节点,我使用此方法编辑列表中索引1处的节点,但是现在当我打印出列表中的所有元素时,它只显示索引0和1处的节点,并且2-3不出现。这里有什么问题吗?

public void edit(int index, String data) {
     Node pre = head;
     Node temp = null;
     for(int i=1; i <= index; i++) {
        temp = pre;
        pre = pre.next();
     }
     Node newNote = new Node(data);
     temp.next = newNote;
     newNote.next = pre.next;
}

你还应该处理一些特殊的情况。例如:这段代码对index = 0不起作用。当链表大小为0时,此代码抛出异常。当索引大于链表大小时,此代码也会抛出异常。诸如此类的

public void edit(int index, String data) {
 if (index==0) {
  head.data(data);
  return;
 }
 if (index < 0 || index > size()) {
   throw new IndexOutOfBoundsException("Index out of bounds.");
  }
 Node pre = head;
 Node temp = null;
 for(int i=1; i <= index; i++) {
    temp = pre;
    pre = pre.next;
 }
 Node newNode = new Node(data);
 temp.next(newNode);
 newNode.next(pre.next);
}

@Mustafa Akıllı像这样的东西?

相关内容

  • 没有找到相关文章

最新更新