【发布时间】:2018-10-11 20:34:18
【问题描述】:
我想从我的线性链表中删除具有最大通用 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 节点。
【问题讨论】:
-
如果您希望人们阅读代码,请考虑正确缩进代码。
-
也许您应该发布可编译的代码...
标签: java while-loop linked-list nodes singly-linked-list