class MatriList:
def __init__(self, rows):
self.rows = rows
self.heads = [FNode() for _ in range(rows)]
def insert(self, row, col, value):
if value == 0:
return
temp = OLNode(row, col, value)
head = self.heads[row]
if head.tail == None:
head.next = temp
head.tail = head.next
else:
head.tail.next = temp
head.tail = temp
这里的self.heads = [FNode() for _ in range(rows)]才是正确的列表推导式
我这里之前使用的是:self.heads = [FNode()] * 3。这里就会有个问题是我数组中的三个元素都是引用的相同的对象,即这里临时创建的FNode(),所以我在创建链表的过程中发现了,我单独对一行进行插入,但每一行都插入了相同的元素,这是因为这里使用的FNode对象都是同一个,所以在一个里面插入,会同步到其他几行中。