繁体   English   中英

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

[英]Deleting a node from a double linked list in java

您好,我建立了一个双向链接列表,我正在搜索该列表以及所有其他内容,我也想从中删除。

对于我的搜索,我有:

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




    } 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM