Я пытаюсь реализовать LinkedList
с нуля и имея проблемы с пониманием метода deleteFirst()
, который удаляет первый Link
в списке. Почему мне нужно сохранить ссылку firstLink
на временный объект Link
, а затем вернуть его? Я не понимаю, почему мне нужно назначить firstLink
ссылку на объект temp
, а затем вернуть его, но откуда он возвращает следующий объект Link
? Почему я не могу это сделать?Зачем мне записывать первый элемент при удалении в связанном списке?
firstLink = firstLink.next;
return firstLink
Класс Link
:
public class Link {
public String bookName;
public int quantity;
public Link next;
public Link(String bookName, int quantity){
this.bookName = bookName;
this.quantity = quantity;
this.next = null;
}
public void display(){
System.out.println("The number of " + bookName + " is " + quantity);
}
}
class LinkedList{
public Link firstLink;
public LinkedList(){
this.firstLink = null;
}
public boolean isEmpty(){
return (firstLink == null);
}
public void insertLink(String bookName, int quantity){
Link newLink = new Link(bookName, quantity);
newLink.next = firstLink;
firstLink = newLink;
}
public Link deleteFirst(){
if(this.isEmpty()){
System.out.println("The list is empty!");
}
else{
Link temp = firstLink;
firstLink = firstLink.next;
return temp;
}
return null;
}
}
Что бы ваше предложение вернулось? Каким должен быть метод? –