想象一条铁路围成一圈。一列火车沿着它行驶,最后一节车厢固定在第一节车厢上,这样你就可以在车厢之间自由移动。你最终随机乘坐一辆马车,你的任务是计算他们的总数。在每辆车中,您都可以打开或关闭灯,但开关的初始位置是随机的,并且无法提前知道。
里面所有的车厢看起来都一模一样,窗户都关着看不到外面,火车的运动是均匀的。除了打开或关闭灯之外,不可能以任何方式标记货车。货车的数量当然是(不要相信标题)。
我们将提供一种可能的解决方案。您需要打开您所在的启动车中的灯(如果它尚未打开)。然后向任何方向前进,直到遇到一辆带工作灯的货车,并确保数过经过的货车。关掉找到的车里的灯,然后回到起点。如果里面的灯还亮着,就重复这个操作。如果没有,那么你已经绕了一圈,知道了答案。
为了解决这个问题,我想组织一个 LinkedList,其中列表的最后一个元素指向第一个元素。可能吗?可以在 LinkedList 中管理链接吗?
更新。我写了一个解决方案。
不。LinkedList 是一个列表,当然不能循环意义。一般来说,在谈到 Java 时,首先必须考虑到类具有一定的含义以及使用它们“契约”的方式。该语言不允许您简单地更改它以免破坏任何东西。如果您想借用一些单独的实现细节,那么最简单的方法是复制代码并对其进行修改,使其以新的方式工作。