📜  使用递归为给定值K创建循环列表结构(1)

📅  最后修改于: 2023-12-03 14:49:58.067000             🧑  作者: Mango

使用递归为给定值K创建循环列表结构

循环列表是一种特殊的链表,它的最后一个节点指向链表的第一个节点,形成了一个环形结构。在本文中,我们将介绍如何使用递归为给定值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的循环列表,它的最后一个节点指向第一个节点,形成了一个环形结构。