Мне трудно понять конкретную строку кода при обращении связанного списка в Java. Вот метод:
public static ListNode reverseList(ListNode head)
{
ListNode prev = null;
while(head != null)
{
ListNode nextNode = head.next;
head.next = prev;
prev = head;
head = nextNode;
}
return prev;
}
У меня проблемы с строкой head.next = prev;
. Когда это происходит, я предполагал, что значение nextNode также изменится, потому что оно также указывает на head.next. Однако он остался прежним. Я знаю, что это как-то связано со ссылками на объекты, но я не совсем уверен. измените значение val объекта test и распечатайте его из test2, я получаю такое же точное значение, как o:
test.val = 8;
System.out.println(test2.val); // this also prints out 8