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

时间:2014-09-22 01:23:41

标签: java linked-list singly-linked-list

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

编辑:我想使用游标作为当前节点的引用,所以我想将游标分配或设置到节点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 个答案:

答案 0 :(得分:0)

假设您已经在此列表中的节点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
}