在开头添加元素时出现链表错误



我正在尝试创建一个在链表中添加元素的程序。在尝试执行给定的python代码时,出现了一个错误:

"赋值前引用的局部变量"head";

这是我尝试过的代码:

class Node:
def __init__(self,data):
self.data=data
self.next=None
def createList(n):
d=int(input('enter  element:'))
global head
head=Node(d)
head.next=None
temp=head
for i in range(2,n+1):
d=int(input('enter element:'))
node=Node(d)
node.next=None
temp.next=node
temp=temp.next
def printList():
temp=head
while temp is not None:
print(temp.data,' ',end='')
temp=temp.next
def insertData(data):
node=Node(data)
node.next=None
temp=head
while temp.next is not None:
temp=temp.next

temp.next=node
def insertBefore(b):
n=Node(b)
n.next=head
head=n


n=int(input('Enter the number of elements:'))
createList(n)
printList()
print()
data=int(input('enter element to add at end of list:'))
insertData(data)
printList()
print()
b=int(input('enter element to add in begining:'))
insertBefore(b)
printList()

在您的所有函数中,当系统不知道head是什么时,您已经将head的值复制到temp中,直到它到达insertBefore(b(函数加上同一函数中的uve引用head,并在您使用它后为其分配一个值,因此它应该从:

def insertBefore(b):
n=Node(b)
n.next=head
head=n

def insertBefore(b):
n=Node(b)
head=n
n.next=head

然后将该功能放在的所有其他功能之上

最新更新