62-円の最後の残りの数-python

質問: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のノードをシミュレートします。

おすすめ

転載: blog.csdn.net/wh672843916/article/details/105503769