📜  从二维矩阵构建链表(迭代方法)(1)

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

从二维矩阵构建链表(迭代方法)

在程序开发的过程中,我们可能需要从一个二维矩阵中构建一个链表。本文将介绍如何使用迭代方法实现这一操作。

示例

下面我们使用一个示例说明从二维矩阵构建链表的过程。

假设我们有以下矩阵:

1 2 3
4 5 6
7 8 9

我们将从该矩阵构建一个链表,每个节点的值对应矩阵中的一个元素。链表的第一个节点应为矩阵中的第一个元素,即1,链表的最后一个节点应为矩阵中的最后一个元素,即9。

实现

我们可以使用两个循环来遍历矩阵中的所有元素。第一个循环用于遍历行,第二个循环用于遍历列。在遍历的过程中,我们将每个元素对应的节点添加到链表中。

具体实现见以下代码:

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

def matrix_to_list(matrix):
    # 创建一个虚拟头节点
    dummy = ListNode()
    curr = dummy

    # 遍历矩阵中的所有元素,并构建链表
    for row in matrix:
        for val in row:
            curr.next = ListNode(val)
            curr = curr.next

    # 返回链表头节点的下一个节点,即第一个有效节点
    return dummy.next

以上代码中,matrix_to_list方法用于从矩阵中构建链表。首先创建一个虚拟头节点dummy,并将curr指向该节点。在接下来的循环中,遍历矩阵中的所有元素,并将每个元素对应的节点添加到链表中。最后返回链表头节点的下一个节点,即第一个有效节点。

使用方法

使用上述方法从二维矩阵构建链表非常简单,只需要将二维矩阵作为参数传入matrix_to_list方法即可。例如:

matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
head = matrix_to_list(matrix)
总结

本文介绍了如何使用迭代方法从二维矩阵构建链表,实现过程简单清晰,使用也非常方便。在实际开发中,如有需要,可按照本文所述方法实现从二维矩阵构建链表的功能。