自己写的单向循环链表,一旦测试数据大了,结果出错如100 3

img

class node():
    def __init__(self,data=None):
        self.data = data
        self.next = None
class LinkListCircle():
    def __init__(self,Node=None):
        self.head = Node
        
    def judge_blank(self):
        if self.head:
            return False
        return True
    
    def right_insert(self,a):
        b=node(a)
        if self.judge_blank():
            self.head = b
            b.next = b
        else:
            p=self.head
            while p.next != self.head:
                p=p.next
            p.next = b
            b.next = self.head
    def Delete(self,a):
        p=self.head
        while p.next.data !=a:
            p=p.next
        p.next=p.next.next
            
    def length(self):
        j=0
        p=self.head
        if p.next == None:
            j=0
        else:
            j=1
        while p.next!=self.head:
            p=p.next
            j=j+1
        return j
#c是那个单链表
    def solve(self,k):
        p=self.head
        for i in range(n-1):
            for j in range(0,k-1):
                p=p.next
            q=p.next
#这个p是找到的要删除元素的p,如果我后续删除了这个元素那么单链表中
#            print(p.data)
            self.Delete(p.data)
            p=q
        print(p.data)
        
    def print_link(self):
        p=self.head
        while p.next!=p:
            print(p.data)
            p=p.next
        print(p.data)
n,k= map(int,input().split())
#n是人数,k是循环的变量
#创建一个单链表,然后把赋值进去
linklist=LinkListCircle()
for i in range(1,n+1):
    linklist.right_insert(i)
linklist.solve(k)




可以参考我写的,对比试试。
Python实现单向循环链表

如果可以请采纳。