你好我有一个双链表设置,我有一个搜索工作和所有这些东西,我只是想删除它。
对于我的搜索,我有:
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中,所以不是很好的帮助,我理解如何使其删除节点的概念,只是无法使其功能
提前谢谢。
答案 0 :(得分:1)
这是一个非常基本的操作。我假设有一个方法,如set / getPrevious()作为一个双链表。
[previous]<==>[u]<==>[next]
删除双向链表中的元素将是前一节点和下一节点的simply changing the references个指针。
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);
}
}