Comment se fait-il que lorsque je crée un noeud de liste chaînée, que j'ajoute des données, que je déplace la tête dans une autre méthode, la tête reste la même dans la méthode de l'appelé?Liée liste Pointer Scope
Par exemple:
public static void append(Node n, int d) {
while (n.next != null) {
n = n.next;
}
n.next = new Node(d);
}
public static void test(Node n) {
n = n.next;
}
public static void main(String[] args) {
Node head = new Node(5);
append(head, 4);
append(head, 3);
test(head); //this moves the head to head.next
//why is head still = 5 after we get here?
}
Votre méthode 'test' ne fait ** rien **. –
tête devrait être passée par référence droite? En test, quand je déplace n = n.next, n.data = 4 dans cette méthode, mais dans main, comment se fait-il head.data = 5? – MiketheViking90
@ MiketheViking90 "tête doit être passé par référence de droite?" Non, la référence est transmise par valeur. – Boann