java - 给定一个节点,如何在单链表中找到前一个节点

标签 java c list data-structures linked-list

给定当前节点,如何在单链表中找到它的前一个节点。谢谢。逻辑会做,代码表示赞赏。我们都知道给定一个根节点可以进行顺序遍历,我想知道是否有一种更聪明的方法可以避免顺序访问开销。 (假设无法访问根节点)谢谢。

最佳答案

你不能。

根据定义,单链表仅将每个节点链接到其后继节点,而不是前任节点。没有关于前任的信息;甚至没有关于它是否存在的信息(您的节点可能是列表的头部)。

您可以使用双向链表。 您可以尝试重新安排所有内容,以便首先将前任作为参数传入。

您可以扫描整个堆以查找看起来像前任节点并带有指向您的节点的指针的记录。 (不是认真的建议。)

关于java - 给定一个节点,如何在单链表中找到前一个节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7198508/

相关文章:

Java 按元素合并两个列表

java - 如何将数字减1,当减到0时又回到起点?

c - 使用 printf() 时 Spi 中断处理程序起作用

java - 游标.getCount 始终 = 0

c - 这两个 char 声明有什么区别?哪一个是正确的?

c - 对数组的索引进行排序

python - 改变列表中列表的值

c# - 循环遍历类中的关联列表?

java - 静态类型是在编译时还是运行时强制执行的?

java - 在 Dom 中创建新 child