删除双向链接列表中给定位置的节点

问题描述 投票:0回答:1

我试图删除一个给定索引的节点,但我一直在测试失败,有时甚至得到一个NullPointerException。这是我到目前为止所做的:

public void remove(int pos)

{

 if (head == last)

        {
            head = null;
            last = null;
        }
        if (pos == size - 1)

            return removeLast();

        if (pos == 0)

            return removeFirst();

        else
        {
            DoubleListNode<E> current = head;

            for (int i = 0; i < pos - 1; i ++)

            {

                current = current.getNext();

            }
            current.setNext(current.getNext().getNext());

            current.getNext().getNext().setPrev(current);

            return current.getData();
        }
}
java doubly-linked-list
1个回答
0
投票

从双向链表中删除的步骤:

让要删除的节点是del。

  1. 如果要删除的节点是头节点,则将头指针更改为下一个当前头。
  2. 如果del之前存在,则设置del之前的下一个。
  3. 如果del存在,则将del的下一个设置为prev。

记住,在这里你必须保持前一个和下一个指针同时处理双方的空状态。

© www.soinside.com 2019 - 2024. All rights reserved.