我正在尝试使用Python创建长度为n的链表。我实现了简单列表,工作级联函数和工作create_list函数;但是,我只是想知道制作链表是否比使用我的连接函数(用于测试)更有效。
简单列表类:
class Cell:
def __init__( self, data, next = None ):
self.data = data
self.next = next
连接函数:
def list_concat(A, B):
current = A
while current.next != None:
current = current.next
current.next = B
return A
列出创建(需要永远!):
def create_list(n):
a = cell.Cell(0)
for i in (range(1,n)):
b = cell.Cell(i)
new_list = cell.list_concat(a, b)
return new_list
答案 0 :(得分:1)
改进代码的最简单方法是:
def create_list(n):
new_list = cell.Cell(0)
last_a = new_list
for i in (range(1,n)):
a = cell.Cell(i)
cell.list_concat(last_a, a)
last_a = a
return new_list
这将使方法的复杂性从O(n ** 2)降低到O(n)。