你好,我已经建立了一个双链接列表,我正在搜索它和所有这些东西,我只想从中删除。
对于我的搜索,我有:
public void firstNameSearch(String name)
{
Node u = header;
while (u != null && u.list() != name )
{
System.out.println("Searching List...");
u = u.getNext();
}
if (u.list() == name)
{
// what do I need to put here to delete it
}
}
我看过关于堆栈溢出的文章,但我发现的都是C语言的,所以没有太大帮助,我理解如何让它删除节点的概念,只是无法让它发挥作用。
提前谢谢。
这是一个非常基本的操作。我假设有一个方法set/getPrevious()作为它的双链表。
[previous]<==>[u]<==>[next]
删除双链接列表中的元素只需更改上一个和下一个节点的引用指针。
if (u.list() == name)
{
Node pre = u.getPrevious();
Node next= u.getNext();
//Connect next node and previous node
if(pre != null){
next.setPrevious(pre);
}else{
header=next;
}
//Connect previous node and next node
if(next != null){
pre.setNext(next);
}else{
pre.setNext(null);
}
}