📜  python将数组转换为链表 - Python(1)

📅  最后修改于: 2023-12-03 15:04:39.203000             🧑  作者: Mango

Python将数组转换为链表

简介

在Python中,我们可以使用列表(list)来表示数组和链表。但是,有时候我们需要将一个数组转换为链表,这个过程需要创建一个包含节点的链表,并将数组中的元素一个一个放到节点里面。

方法

以下是将一个数组转换为链表的示例代码:

class ListNode:
    def __init__(self, val=0, next=None):
        self.val = val
        self.next = next

def arrayToListNode(nums):
    if not nums:
        return None
        
    head = ListNode(nums[0])
    node = head
        
    for i in range(1, len(nums)):
        node.next = ListNode(nums[i])
        node = node.next
            
    return head

上述代码中,我们首先定义了一个ListNode类,这是一个包含一个值和一个指向下一个节点的指针的节点类。随后我们定义了一个名为arrayToListNode的函数,该函数接收一个数组作为输入参数,并返回一个链表。

在函数中,我们首先检查输入数组是否为空,如果为空,则返回None。如果数组不为空,我们定义了一个名为head的指针指向链表的第一个节点,同时使用一个名为node的指针来在链表中移动。

我们使用for循环遍历数组中的每个元素,并将每个元素放入一个新的节点中,最后将该节点与前一个节点相连,构建完整的链表。

示例

以下是一个使用示例:

nums = [1, 2, 3, 4, 5]
head = arrayToListNode(nums)
node = head

while node:
    print(node.val)
    node = node.next

在该示例中,我们首先定义了一个包含5个元素的数组nums,随后把nums传入函数arrayToListNode来生成一个包含5个节点的链表head。最后,我们使用循环遍历所有节点,并打印出每个节点的值。这将打印出以下结果:

1
2
3
4
5
总结

通过上述示例,我们可以看出,Python中将一个数组转换为链表是非常容易的。我们只需要定义一个具有指向下一个节点指针的节点类,然后将数组中的每个元素一个一个放到节点里面,即可构建出一个包含所有元素的链表。