我遇到的一个问题, 在循环链表中,在循环开头找到节点?
示例输入:A - > B - > C - > D - > E - > C [与之前相同的C]输出:C
其中一个解决方案是,可以查看存储在这些节点上的值的地址是否相同?
像&(A-> value)这样的东西会返回我们的地址,然后我们会发现地址是否重复,如果是,那么这是循环的开始?
答案 0 :(得分:3)
你可以这样做,但就空间复杂性而言,这是非常没有效率的,因为你需要存储你在路上看到的所有节点。
更好的解决方案可能是Floyd's cycle查找算法,如this post
中所述