如何检测链表中的循环?
2022-08-31 04:28:24
假设您在Java中有一个链接列表结构。它由节点组成:
class Node {
Node next;
// some user data
}
并且每个节点都指向下一个节点,但最后一个节点除外,该节点的下一个节点为 null。假设列表可能包含一个循环 - 即最终节点,而不是具有空值,具有对列表中位于其前面的节点之一的引用。
最好的写作方式是什么
boolean hasLoop(Node first)
如果给定的节点是具有循环的列表的第一个,这将返回,否则?你怎么能写得需要恒定的空间和合理的时间?true
false
下面是带有循环的列表的外观图片: