Redian新闻
>
C++ Q62: loop in a linked list (Bloomberg)
avatar
f*w
2
loop in linked lisk的根本是两个节点的next指向同一个节点,可以作一个hash_map<
Node, reinterpret_castnext()〉, 对linked list 遍历,看有没有
两个next pointer指向同一个Node
avatar
h*k
3
你这个算法需要O(n)的additional storage.
详细讨论见http://ostermiller.org/find_loop_singly_linked_list.htmlhttp://en.wikipedia.org/wiki/Cycle_detection
这个问题还要注意另外两个扩展,在知道有loop后,如何找到loop的起点和长度;或者
如何证明你的算法是对的。

map<

【在 f**********w 的大作中提到】
: loop in linked lisk的根本是两个节点的next指向同一个节点,可以作一个hash_map<
: Node, reinterpret_castnext()〉, 对linked list 遍历,看有没有
: 两个next pointer指向同一个Node

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。