单向循环链表的特性: 尾部指针不为None,指向循环的额下一个元素的head
class Node(object):
"""节点"""
def __init__(self, item):
self.item = item
self.next = None
class SinCycLinkedlist(object):
"""单向循环链表"""
def __init__(self):
self._head = None
def is_empty(self):
"""判断链表是否为空"""
return self._head == None
def length(self):
"""返回链表的长度"""
# 如果链表为空,返回长度0
if self.is_empty():
return 0
cur = self._head
count = 0
while cur.next != self._head:
count += 1
cur = cur.next
def add(self, item):
"""向单链表头部添加节点"""
node = Node(item)
if self.is_empty():
self._head = node
node.next = self._