题目:0,1,...,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字。求这个圆圈里剩下的最后一个数字。
def delete_circle_n(head,n):
p = head
while p!=p.next:
i = 0
while i<n:
p = p.next
i += 1
q = p.next
p.data = q.data
p.next = q.next
del q
return p
注:约瑟夫环问题,使用环形链表模拟求出最后剩下的一个节点,即p==p.next时的节点。