我们说我有两个类,object1和object2。我想在object2的实例中将object1实例添加到链表的末尾(也就是说,将object1添加到链表的方法是在object2类中)。假设链表已经有一个对象,为什么以下内容不会更新我的链表:
object1 a = firstObject1;
while(a != null) {
a = a.next;
}
a = b;
其中b是调用add方法的对象。要明确的是,我得到的问题是,当我打印链表中每个对象的ID时,我看不到新对象。
注意:这实际上是家庭作业,因此我无法使用辅助方法或导入库。
答案 0 :(得分:3)
此处的问题是,将本地变量a
设置为新节点b
将超出此块结尾的范围,从而导致无法添加新节点。这样做的正确方法是检查a.next
何时null
,以便将a.next
设置为b
:
object1 a = firstObject1;
while (a.next != null) {
a = a.next;
}
a.next = b;
答案 1 :(得分:2)
您需要为a.next
设置b
至a
。 a = b
基本上什么都不做,因为a
是一个局部变量。
object1 a = firstObject1;
while(a.next != null) { // find the last a, the one which does not has a next
a = a.next;
}
a.next = b; // set the next of the last a
此外,请开始为您的课程提供更有意义的名称,不要在其中加上数字,并让它们以大写字母开头。