使用单链表创建编辑方法

时间:2016-09-09 03:27:07

标签: java linked-list edit

有什么办法可以在链表中编辑特定节点的数据吗?我开始写一个方法:

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不出现。关于这里出错的任何提示?

2 个答案:

答案 0 :(得分:1)

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时抛出链接列表大小的异常。并且当索引大于链接列表大小时,此代码也会抛出异常。这样的事情

答案 1 :(得分: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);
}

@MustafaAkıllı有这样的事吗?