【发布时间】:2016-06-06 14:46:09
【问题描述】:
给定一个单向链表,向后读取该链表。这听起来像一个简单的问题但是(!)你不能改变链表的指针,你只能使用 3 个变量(指针或其他变量),每个单元格都有一个以 false 开头的 bool 标志,你可以使用它如你所愿。
在 O(n^2) 中很容易做到,但我认为有更好的解决方案(也许 O(n)?)。
【问题讨论】:
-
但是为什么呢?这是学术练习吗?
-
使用堆栈:将所有列表元素压入其中,然后您可以以相反的顺序将它们拉出。那将是
O(n) -
你可以递归地解决它......你从头部开始,调用下一个(递归地)直到你在尾部或nullptr......然后递归关闭,你可以打印出价值...它比 O(n) 所以在线性时间内
-
是的,但它也很有用,因为指针很重,计算机很难改变它们的值
-
@OferMagen 到目前为止您尝试过什么?这听起来像是家庭作业。
标签: algorithm linked-list