链表附加函数的Python错误



我正在尝试学习使用python3实现链表。当我调用append函数时,我的代码抛出错误"TypeError:Node((不带参数"。


class Node:
def _init_(self,data):
self.data=data
self.next=None
class LinkedList:
def _init_(self):
self.head=None
def print_list(self):
cur_node=self.head
while cur_node:
print(cur_node.data)
cur_node=cur_node.next
def append(self,data):
new_node=Node(data)
if self.head is None:
self.head = new_node
return
last_node = self.head
while last_node.next:
last_node=last_node.next
last_node.next=new_node

llist = LinkedList()
llist.append('A')
llist.append('B')

上述代码的错误是

TypeError                                 Traceback (most recent call last)
<ipython-input-4-893f725212cd> in <module>
1 llist = LinkedList()
----> 2 llist.append('A')
3 llist.append('B')
<ipython-input-3-a7f4eb6e69c9> in append(self, data)
14 
15     def append(self,data):
---> 16         new_node=Node(data)
17         if self.head is None:
18             self.head = new_node
TypeError: Node() takes no arguments

我的完整代码写在上面。代码出了什么问题?

应该是

def __init__(self,data):

init 两侧各有2个下划线

代码中的错误并不是说Node((不接受任何参数,而是试图解释Node((在初始化时不应该接受任何参数。

我对Node本身了解不多,但从错误来看,这就是我的结论。

这是由于在生成__init__函数时出现了一个简单的语法错误。_init_周围有一个下划线,而它应该是带有2个下划线的__init__

相关内容

  • 没有找到相关文章

最新更新