链接列表 - 参考不会更改

时间:2018-02-14 14:22:56

标签: java

实现包含一个整数的单链表和对下一个元素的引用。我写了两个显示整个列表的方法。

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"尽管它是通过引用传递的。

提前多多感谢。

0 个答案:

没有答案