假设您在Java中有一个链表结构.它由节点组成:
class Node {
Node next;
// some user data
}
Run Code Online (Sandbox Code Playgroud)
每个节点都指向下一个节点,最后一个节点除外.假设列表有可能包含一个循环 - 即最终的节点,而不是具有空值,具有对列表中的一个节点的引用.
什么是最好的写作方式
boolean hasLoop(Node first)
Run Code Online (Sandbox Code Playgroud)
true
如果给定的Node是带循环的列表的第一个,它将返回,false
否则?你怎么写,这需要一个恒定的空间和合理的时间?
这是一个循环列表的图片: