📜  从二维矩阵构造一个链表(1)

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

从二维矩阵构造一个链表

在编程中,有时我们需要将二维矩阵转换为链表的形式,方便对数据进行操作。本篇文章将介绍如何通过Python代码实现从二维矩阵构造一个链表的操作。

实现思路

我们可以通过以下步骤实现从二维矩阵构造一个链表的操作:

  1. 定义链表的节点类,并定义节点的属性为该节点的值val和指向下一个节点的指针next。
  2. 根据二维矩阵,创建一个新的链表。
  3. 遍历二维矩阵中的每一个元素,在遍历过程中创建节点,并设置节点的值val以及next指针。
  4. 连接链表中的每一个节点,构造成完整链表。
代码实现

下面是Python代码实现从二维矩阵构造一个链表的过程。

class ListNode:
    def __init__(self, val=0, next=None):
        self.val = val
        self.next = next
        
def createLinkedList(matrix):
    if not matrix:
        return None
    head = ListNode(matrix[0][0])
    cur = head
    row, col = len(matrix), len(matrix[0])
    for i in range(row):
        for j in range(col):
            if i == 0 and j == 0:
                continue
            node = ListNode(matrix[i][j])
            cur.next = node
            cur = cur.next
    return head
代码解析

在本段代码中,我们定义了节点类ListNode,其中__init__方法用于初始化节点,并将节点的值和next指针设置为默认值。在createLinkedList函数中,我们首先判断二维矩阵是否为空。若为空,则返回空链表。然后我们用head变量指向链表的头节点,并初始化cur变量,指向当前节点。接下来,我们使用两个循环遍历二维矩阵中的每一个元素。在遍历过程中,我们创建新的节点,并将节点的值和next指针设置为当前元素的值和None。然后将新节点连接到链表的当前节点之后,并将cur指向新的节点。最后返回链表的头节点head

示例

现在我们来测试一下从二维矩阵构造链表的代码。

matrix = [[1,2,3],[4,5,6],[7,8,9]]
head = createLinkedList(matrix)
while head:
    print(head.val, end=' ')
    head = head.next

代码输出结果如下:

1 2 3 4 5 6 7 8 9

此时,我们已成功地从二维矩阵构造了一个链表,并可以对链表进行操作。