题目:
一个环形单链表,从头结点开始向后,指针每移动一个结点,就计数加1,当数到第m个节点时,就把该结点删除,然后继续从下一个节点开始从1计数,循环往复,直到环形单链表中只剩下了一个结点,返回该结点。
这个问题就是著名的约瑟夫问题。
代码:
首先给出环形单链表的数据结构:
class Node(object):
def __init__(self, value, next=0):
self.value = value
self.next = next # 指针
class RingLinkedList(object):
# 链表的数据结构
def __init__(se