📅  最后修改于: 2023-12-03 15:25:37.686000             🧑  作者: Mango
循环链表是一种特殊的链表数据结构,其中最后一个节点指向第一个节点,形成了一个循环。在循环链表中,我们可以遍历链表并访问每个节点的数据值。
遍历循环链表与遍历普通链表的方法类似。由于循环链表的最后一个节点指向第一个节点,因此我们可以从任意节点开始遍历循环链表。以下是遍历循环链表的示例代码:
class Node:
def __init__(self, data = None):
self.data = data
self.next = None
class CircularLinkedList:
def __init__(self):
self.head = None
def traverse(self):
if not self.head:
print("Circular Linked List is empty")
return
current_node = self.head
while current_node.next != self.head:
print(current_node.data, end = ' ')
current_node = current_node.next
print(current_node.data)
在上述代码中,我们定义了一个 traverse()
函数来遍历循环链表。该函数首先检查循环链表是否为空,如果为空,则打印消息并返回。否则,我们使用一个 current_node
变量来跟踪当前节点,并一直沿着链表移动,直到我们回到起始节点为止。我们在每个节点上打印其数据值,最终打印出整个循环链表。
现在,让我们利用上述类来创建一个简单的循环链表,并使用 traverse()
函数遍历该链表。
# 创建一个循环链表
c_list = CircularLinkedList()
c_list.head = Node(1)
second_node = Node(2)
third_node = Node(3)
fourth_node = Node(4)
c_list.head.next = second_node
second_node.next = third_node
third_node.next = fourth_node
fourth_node.next = c_list.head
# 遍历循环链表
c_list.traverse()
输出如下:
1 2 3 4
上述示例演示了遍历循环链表的方法。您可以通过从任意节点开始,沿着链表移动并访问每个节点的数据来实现此目的。