链接列表后插入

时间:2013-03-01 08:55:05

标签: java

我是一名学习Java的学生。我明天有一个很大的考验,我对某段代码感到困惑。

方法insertAfter查找传递给方法的linkedList中的数字,并在匹配后插入新节点。我不明白

 curr.setNext(curr.getNext()) 

将把我们带到列表中的下一个Node,它可能是我们正在寻找的号码。那么这个命令如何通过链表重复我们呢?

去curr = curr.getNext()?

是不是更有意义

谢谢,对不起,如果这很简单......我现在很困惑

// assume firstInList is in the list
public void insertAfter(int firstInList, Node toAdd){
    Node curr = head;

    while( curr.getData() != firstInList ){
        curr.setNext(curr.getNext());
    }

    curr.setNext(toAdd);        
}


   Node class
  {
   int getData() {return data};
   void setData(int data) {this.data =data};
   Node getNext() {return next};
   void setNext(Node next) {this.next = next};
  }

}

其他方法 该方法称为

   public void insertBefoe (Node, inList, Node toAdd)

2 个答案:

答案 0 :(得分:1)

似乎很清楚代码应该是:

curr = curr.getNext()

而不是

curr.setNext(curr.getNext());

此外,以下内容已被破坏:

curr.setNext(toAdd);        

执行此操作后,firstInList后面的列表部分将丢失。

答案 1 :(得分:0)

代码看起来不正确。

头部来自哪里?看起来它永远不会出现在while循环中,除非setNext(..)以某种方式改变getData()中的代码

由于我们没有全面的照片,因此很难提供帮助