有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java 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());

    }

共 (1) 个答案

  1. # 1 楼答案

    假设您已经位于该列表中的节点2:1>;2>;3>;空的

    如果此时“光标”指向节点2,并且您希望删除节点2,则

    将下一个元素(节点3)复制到“光标”位置

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

    指向“下一个”旁边的“光标”

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