【发布时间】:2019-10-26 22:19:39
【问题描述】:
当我插入一个新节点时,我得到 AttributeError: 'Node' object has no attribute 'set_next'。我真的不明白为什么,因为在我的 Node 类中我有一个方法 set_next。那不是我打电话的那个人吗?
class Node(object):
def __init__(self, val):
self.val = val
self.next = None
def get_data(self):
return self.val
def set_data(self, val):
self.val = val
def get_next(self):
return self.next
def set_next(self, next):
self.next = next
class LinkedList(object):
def __init__(self, head=None):
self.head = head
self.count = 0
def get_count(self):
return self.count
def insert(self, data):
new_node = Node(data)
new_node.set_next()
self.head = new_node
self.count += 1
预期的输出是新节点应该是新的头节点。
【问题讨论】:
-
在哪一行?你怎么称呼这个?而您的
set_next方法需要一个您没有提供的参数。 -
好像你的缩进关闭了,取消所有函数
get_data, set_data ..的缩进,使它们与init处于同一级别 -
@doctorlove 我用
itemList = LinkedList()调用它,然后用itemList.insert(38)插入一个新节点,运行new_node.set_next()时def insert 方法出现错误。 -
但是你的
set_next函数需要一个参数。 -
new_node.set_next(self.head)例如。
标签: python python-3.x linked-list singly-linked-list