Java 链表插入后
我是一个刚刚学习Java的学生。我明天有一个大考,我被一行代码弄糊涂了 insertAfter方法在传递给该方法的linkedList中查找编号,并在匹配后插入新节点。我不明白怎么做Java 链表插入后,java,Java,我是一个刚刚学习Java的学生。我明天有一个大考,我被一行代码弄糊涂了 insertAfter方法在传递给该方法的linkedList中查找编号,并在匹配后插入新节点。我不明白怎么做 curr.setNext(curr.getNext()) 将带我们到列表中的下一个节点,该节点可能就是我们要查找的号码。那么这个命令是如何遍历链表的呢 转到curr=curr.getNext()是否更有意义 如果这很简单,谢谢你,对不起。。。我现在很困惑 // assume firstInList is in
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)
代码看起来不正确 头从哪里来?看起来它永远不会从while循环中出现,除非
setNext(..)
以某种方式也改变了getData()中的代码
不幸的是,很难提供帮助,因为我们没有完整的信息,代码看起来不正确
头从哪里来?看起来它永远不会从while循环中出现,除非setNext(..)
以某种方式也改变了getData()中的代码
不幸的是,这很难提供帮助,因为我们没有完整的信息很明显,代码应该是:
curr = curr.getNext()
而不是
curr.setNext(curr.getNext());
此外,以下内容被破坏:
curr.setNext(toAdd);
一旦执行此操作,列表中第一个列表后面的部分将丢失。代码应该是:
curr = curr.getNext()
而不是
curr.setNext(curr.getNext());
此外,以下内容被破坏:
curr.setNext(toAdd);
一旦执行此操作,列表中第一个列表后面的部分将丢失。这段代码来自何处?@UmNyobe注意到我的教授给了我,但没有解释为什么它也是以类节点的方式编写的。这看起来不对…我需要把它全部打出来。。一秒钟当谷歌搜索当前设置下一步(curr.getNext())
时,你会发现一些带有当前设置下一步(curr.getNext().getNext())的代码片段。
(但不是在insertAfter
方法中。如果后一段代码在同一个地方,你能理解吗?这段代码从哪里来?@UmNyobe注意到我的教授给了我,但没有解释为什么它也是以类节点
的方式编写的。这看起来不对……我需要全部键入..one Second当谷歌搜索curr.setNext(curr.getNext())
时,你会发现一些带有curr.setNext(curr.getNext().getNext())的代码片段。(但不是在insertAfter
方法中。如果后一部分在同一个位置,你能理解吗?谢谢你的回答Shervin…我已经用Node类编辑了我的问题。也许它会更有用。另外,我相信head只是列表的开始…假设我们有全局引用。谢谢l、 当代码现在读取时,它被破坏了。它不工作。它将是一个无限循环,因为getData()永远不会等于FirstInList谢谢你的回复Shervin…我已经用Node类编辑了我的问题…也许它会更有用。而且,我相信head只是列表的开始…假设我们有全局引用。谢谢,代码现在读到了,它坏了。它不起作用。它将是一个无限循环,因为getData()永远不会等于FirstInList这就是我建议的NPE。所以我的教授写错了?你能解释一下为什么curr.setNext(toAdd)会错吗?如果我们使用curr=curr.getNext()会有意义吗.谢谢!@Teddy13:如果这是你教授的工作代码,我想你需要一位新教授。如curr.setNext(toAdd)
,想想原始列表中firstInList
后面的元素会发生什么情况。那么您将如何继续保持firstInList?谢谢…威尔接受这就是我建议的NPE。所以我的教授写错了?您能解释为什么使用curr.setNext(toAdd)吗是不是错了?如果我们使用curr=curr.getNext(),有意义吗?谢谢!@Teddy13:如果这是你教授的工作代码,我想你需要一个新教授。Ascurr.setNext(toAdd)
,想想原始列表中firstInList
后面的元素会发生什么情况。那么您将如何继续保持firstInList?谢谢…将接受