如何回到之前的节点


while(element != null)
{
    //temp = element (useless)
    element = element.node;
    //can't do (element.node).method();
    //neither temp.method();
}

要遍历LinkedList,我们执行上述操作。但是,如果我想回到以前的节点怎么办?这可能吗?我想过将节点存储在一个临时变量中,但是我无法更改LinkedList中的节点,因为临时变量只存储节点的值,而不是对象的值。

我没想到LinkedList这么难处理,因为我已经习惯了处理非动态数据结构(数组)。

有一种相关的数据结构叫做"双链表",它除了存储指向下一个元素的指针外,还存储指向前一个元素的指针。这样,你不仅可以浏览列表,还可以返回列表。这能达到你的目的吗?

另外,为了响应您使用临时变量的建议,我认为实际上只要您存储的数据是对象(而不是原语),并且您需要进行的更改是对对象的更改,而不是对对象的重新分配。

双重链表,正如上面Jimmy Lee提到的,是经典的方法。您还可以保存对"感兴趣的"节点的引用。或者你可以创建一个新的链表,当你遍历链表时,链表的方向是相反的。最后,一个技巧是在遍历列表时简单地反转链接,但这会改变原始列表。

相关内容

  • 没有找到相关文章