我是一名学习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)
答案 0 :(得分:1)
似乎很清楚代码应该是:
curr = curr.getNext()
而不是
curr.setNext(curr.getNext());
此外,以下内容已被破坏:
curr.setNext(toAdd);
执行此操作后,firstInList
后面的列表部分将丢失。
答案 1 :(得分:0)
代码看起来不正确。
头部来自哪里?看起来它永远不会出现在while循环中,除非setNext(..)
以某种方式改变getData()
中的代码
由于我们没有全面的照片,因此很难提供帮助