Problem 4: Has Cycle (0pts)
The Link
class can represent lists with cycles. That is, a list may contain itself as a sublist. Implement has_cycle
that returns whether its argument lnk
, a Link
instance, contains a cycle. Try to solve it with constant space! (i.e. no list
, dict
, set
or any other container)
def has_cycle(lnk):
""" Returns whether `lnk` has cycle.
>>> lnk = Link(1, Link(2, Link(3)))
>>> has_cycle(lnk)
False
>>> lnk.rest.rest.rest = lnk
>>> has_cycle(lnk)
True
>>> lnk.rest.rest.rest = lnk.rest
>>> has_cycle(lnk)
True
"""
"*** YOUR CODE HERE ***"