为什么树迭代不能在python类中正常工作

为什么树迭代不能在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

当我做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: 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分