实现包含一个整数的单链表和对下一个元素的引用。我写了两个显示整个列表的方法。
VERSION A 确实包含本地变量 current 。
VERSION B 不包含"当前"变量。 两个版本都运行良好,但是我不明白为什么没有局部变量的VERSION B也能正常工作。
public class LList{
// VERSION A
public static void printListA(Node Head){
Node current = Head;
while(current != null){
System.out.println(current._value);
current = current._next;
}
}
// VERSION B
public static void printListB(Node Head){
while(Head != null){
System.out.println(Head._value);
Head = Head._next;
}
}
版本B的问题:由于Node-instance有资格作为可变对象,因此通过引用传递给" printListB-function"。因此,我希望Head节点可以通过" printListB"来改变,因为" Head"在每次迭代时被覆盖(" Head"应该成为Tail节点)。 然而情况并非如此,似乎" Head"被视为函数的局部变量。
有人可以解释一下,为什么printListB不会改变参数" Head"尽管它是通过引用传递的。
提前多多感谢。