📅  最后修改于: 2023-12-03 14:49:58.067000             🧑  作者: Mango
循环列表是一种特殊的链表,它的最后一个节点指向链表的第一个节点,形成了一个环形结构。在本文中,我们将介绍如何使用递归为给定值K创建循环列表结构。下面是我们的递归函数:
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
def create_circular_list(k):
if k == 0:
return None
head_node = ListNode(1)
current_node = head_node
for i in range(2, k+1):
current_node.next = ListNode(i)
current_node = current_node.next
current_node.next = head_node
return head_node
这个函数接受一个整数k作为输入,返回一个长度为k的循环列表。如果k为0,则返回None。
我们首先创建一个头节点,并将其赋给current_node变量。然后,我们使用for循环创建其余的节点,将它们附加到当前节点的next属性上,并将current_node变量指向新的节点。最后,我们将最后一个节点的next属性设置为头节点,从而将链表构成一个循环。
使用示例:
head_node = create_circular_list(5)
current_node = head_node
for i in range(10):
print(current_node.val)
current_node = current_node.next
输出结果:
1
2
3
4
5
1
2
3
4
5
我们得到了一个长度为5的循环列表,它的最后一个节点指向第一个节点,形成了一个环形结构。