我必须删除链表中的当前节点,该游标被分配给该节点,以便游标代表我的当前节点。删除当前节点或光标后,应将光标分配给刚刚删除的节点之后的节点。我已经删除了节点,但我不明白如何将光标分配给它之后的节点。
编辑:我想使用光标作为我当前节点的引用,所以我想将光标分配或设置到节点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
}