从java中的双链表中删除节点

时间:2012-01-10 14:59:50

标签: java linked-list

你好我有一个双链表设置,我有一个搜索工作和所有这些东西,我只是想删除它。

对于我的搜索,我有:

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中,所以不是很好的帮助,我理解如何使其删除节点的概念,只是无法使其功能

提前谢谢。

1 个答案:

答案 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); 
        }




    }