我是一名刚学习Java的学生。我明天有一个大测试,我对某行代码感到困惑。
insertAfter 方法查找传递给该方法的 linkedList 中的数字,并在匹配后插入一个新节点。不明白怎么办
curr.setNext(curr.getNext())
将带我们到列表中的下一个节点,该节点可能是我们正在查找的数字。那么这个命令是如何遍历链表的呢?
使用 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)
最佳答案
看起来很清楚,代码应该是这样的:
curr = curr.getNext()
而不是
curr.setNext(curr.getNext());
此外,以下内容已损坏:
curr.setNext(toAdd);
执行后,firstInList
之后的列表部分将丢失。
关于java - 链表插入后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15153870/