我正在写下面的代码,但是当我试图调用函数size()
时,它抛出了错误
class Node:
def __init__(self,data):
self.data=data
self.left=None
self.right=None
def insert(self,data):
if self.data:
if data<self.data:
if self.left is None:
self.left=Node(data)
else:
self.left.insert(data)
else:
if self.right is None:
self.right=Node(data)
else:
self.right.insert(data)
else:
self.data=data
def size(node):
if node is None:
return 0
else:
return (size(node.left)+ 1 + size(node.right))
root=Node(4)
root.insert(5)
root.insert(3)
root.insert(8)
print(size(root))
引发以下错误:
NameError Traceback (most recent call last)
<ipython-input-7-8c72ba7719dc> in <module>
41 root.insert(8)
42
---> 43 print(size(root))
44
45 #root.print()
NameError: name 'size' is not defined
在
class
语句之后定义size
:或者用适当的方法:
经过与@ShadowRanger的讨论,我得出了以下结论。你知道吗
在代码中,
size
是绑定到Node
对象的方法,因此需要调用root.size()
(因为root
是Node
实例)相关问题 更多 >
编程相关推荐