我们将单向链表的最后一个节点的指针指向链表的头部(第一个节点),那么就形成了一个环形链表。环形节点可以从任意节点开始遍历其他的节点。
这里主要实现了环形链表节点的遍历、添加、插入、删除,反转。
代码如下:
class Player:
"""节点类"""
def __init__(self):
"""初始化姓名,分数,指针"""
self.name = ''
self.score = 0
self.next = None
def ergodic(head, num=None, is_print=False):
"""遍历函数,num是遍历到哪一个位置序号,is_print是否触发打印方法"""
if head.next is None:
return None
ptr = head
count = 0
while True:
count += 1
if is_print:
print('No.'+str(count), ptr.name, ptr.score, '--->', ptr.next.name)
if count == num:
break
if ptr.next == head:
break
ptr = ptr.next
return ptr # 返回遍历完成后的最后一个节点
de