【发布时间】:2015-11-26 08:54:01
【问题描述】:
我需要删除 SortedLinkedList 中的一个键,但我不能。没有语法错误,但代码不起作用。删除节点列表的乞求、结束和中间的方法。这是我的删除方法:
public void Remove(int key){
LinkedListNode find = Find(key);
if(find == null){
System.out.println("Item is not found.");
return;}
LinkedListNode helper = new LinkedListNode();
helper.next = head;
LinkedListNode p = helper;
while(p.next != null){
if(p.next.key == key){
LinkedListNode next = p.next;
p.next = next.next;
}else{
p = p.next;
}
return;
}
noOfNodes--;
}
public void Remove(LinkedListNode node) {
Remove(node.key);
}
另一个代码:
public void Remove(int key){
LinkedListNode temp = Find(key);
if(temp==null)
{
System.out.println("Item not found");
return;
}
if(head==tail){
head=null;
tail=null;
}
else if(temp.key==head.key){
head=temp.next;
head.prev=null;
//
}else if(temp.key==tail.key){
tail=tail.prev;
tail.next=null;
}else {
temp.prev.next=temp.next;
temp.next.prev=temp.prev;
}
noOfNodes--;
}
public void Remove(LinkedListNode node){
Remove(node.key);
}
提前致谢!
【问题讨论】:
-
你如何设置头部?现在我认为它不会编译...
-
请更具体。究竟什么不起作用?你有错误吗?哪一种?
-
没有错误但运行时错误。我删除了一些头并打印了我的列表并删除了仍然存在的节点。相同情况的尾节点。
标签: java sortedlist