Я хочу удалить узел с самым большим универсальным T-объектом из моего линейного связного списка (список имеет только заголовок) и вернуть объект этого узла.Подпись метода должна выглядеть следующим образом, и код, который я получил до сих пор:
Список выглядит следующим образом:
public List<T extends Comparable<T>>{
private Node<T> head;
public List(){
this.head = null;
}
//inner class Node
public class Node<T>{
T obj;
Node<T> next;
}
public Node(T obj){
this.obj = obj;
}
//the method my question is about
public T remove(){
if(head == null) return null;
else {
Node<T> act = head;
Node<T> prev = head //previous Node
Node<T> biggest;
while(act != null){
if(act.obj.compareTo(prev.obj) > 0) {
biggest = act;
}
prev = p;
p = p.next;
}
return biggest.obj;
}
}
Этот код получает только самый большой объект, но не удаляет узел.Я не знаю, как адаптировать цикл while для удаления узла.Если я нашел самый большой элемент, указатель prev.next должен как-то перейти в узел act.next.