62-圆圈中最后剩下的数字

题目: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时的节点。

猜你喜欢

转载自www.cnblogs.com/kingshine007/p/11578571.html