Я не могу заставить мою программу удалять последний узел или только узел в моем связанном списке. Он удалит любой другой узел. Эта программа позволяет пользователю вводить целые числа и удалять их. Заранее спасибо за вашу помощь.Удалить последний узел или только узел из связанного списка на Java.
// This method finds the value requested in the Linked List.
public Node find(Node head, Comparable value2){
if (head == null)
{
System.out.println("The list is empty");
return null;
}
Node pointer = head;
while (pointer != null)
{
if (pointer.data.compareTo(value2)>=0)
{
Node delNode = pointer;
System.out.print("Found it. Deleting " + delNode.data + "\n");
return delNode;
}
pointer = pointer.next;
}
return null;
}
// This method deletes a given value from the linked list.
public void delete(Node head, Comparable value2){
Node delNode;
delNode = find(head, value2);
if (delNode== null)
{
System.out.println("The value: " + value2 + " does not exist");
print(head);
}
else
{
if (delNode.next == null)
{
System.out.println("Trying to delete last");
delNode = null;
print(head);
}
else{
delNode.data = delNode.next.data;
Node temp = delNode.next.next;
delNode.next = null;
delNode.next = temp;
print(head);
}
}
return;
}
Я думал, что если (delNode.next == null) {delNode = null} сделал бы это?
Я боюсь, вы испытываете некоторый проход по ссылке/передачи по стоимости вопросов здесь. Какое поведение вы ожидали от того, что не видите, или какое неожиданное поведение вы сталкиваетесь? Как вы ожидали, что «удалите» работу в этом случае? – Gian
'delNode' - локальная переменная. Вы можете назначить ему то, что хотите, это не повлияет на состояние объекта. Возможно, вы захотите обновить некоторые поля. – Thilo
это единый список? – sanbhat