为什么树迭代不能在python类中正常工作
当我做173题时,我想到了这个问题。leetcode上的二进制搜索树迭代器:为什么树迭代不能在python类中正常工作,python,class,Python,Class,当我做173题时,我想到了这个问题。leetcode上的二进制搜索树迭代器: class TreeNode(object): def __init__(self, x): self.val = x self.left = None self.right = None class BSTIterator(object): def __init__(self, root): """ :type root: TreeNo
class TreeNode(object):
def __init__(self, x):
self.val = x
self.left = None
self.right = None
class BSTIterator(object):
def __init__(self, root):
"""
:type root: TreeNode
"""
self.root = root
def next(self):
"""
:rtype: int
"""
self.point = self.root
while self.point.left:
self.point = self.point.left
#self.point = self.point.left
#self.point.val = 1000
self.point = None
然后当我跑的时候:
root = TreeNode(0)
root.left = TreeNode(1)
root.right = TreeNode(2)
iterat.next()
iterat.root.left.val
我本以为没有,但它还是返回了1。有什么解释吗?您无法获得任何解释是因为您根本没有更改self.root。相反,在下一个函数中创建
self.point
,仅对self.point
进行变异
您可以在底部添加一行
print(iterat.point)
它会还给你
None
如何初始化
iterat
,此处未显示。iterat=bstierator(root)。初始化之后,我运行了两次iterat.next(),希望没有得到任何结果。但我总是得到1分