LinkedList:如何将当前节点分配给它之后的节点?删除当前节点时



我必须删除链表中的当前节点,该游标被分配给该节点,以便游标代表我的当前节点。删除当前节点或光标后,应将光标分配给刚刚删除的节点之后的节点。我已经删除了节点,但我不明白如何将光标分配给它之后的节点。

编辑:我想使用光标作为我当前节点的引用,所以我想将光标分配或设置到节点3。因此,一旦我删除了节点2并将节点1的链接设置为节点3,游标就应该被分配给节点3,节点3将是游标所代表的我的当前节点。

        Cursor                                                   Cursor
  [1] -> [2] -> [3]               Result should be this:   [1] -> [3]
          |
       Removing

以下是我所做的:for循环在列表中移动,它刚好在游标之前停止,因此它获得游标之前的节点,即prevCursor。然后,我将prevCursor的链接设置为删除节点之后的节点,将光标之前的节点链接到删除节点之后。

public boolean removeCurrentNode()
{
    AirportNode prevCursor = null;
    if(cursor != null)
    {
        for(prevCursor = head; prevCursor != cursor; prevCursor = prevCursor.getNext())
        {
        }

        prevCursor.setNext(prevCursor.getNext().getNext());
    }

假设您已经在此列表中的节点2:1->2-->3-->null

如果此时"光标"指向节点2,并且您想要删除节点2,则

将下一个元素(节点3)复制到"cursor"位置。

cursor.data = cursor.next == null ? null : cursor.next.data

将"光标"指向下一个的下一个

if(cursor.next != null) {
     cursor.next = cursor.next.next
}

相关内容

  • 没有找到相关文章

最新更新