【发布时间】:2019-03-02 00:50:38
【问题描述】:
我正在尝试为我的二叉搜索树实现一个迭代器。为了实现这一点,我尝试按顺序遍历树并产生每个单独的数据成员。这将允许我遍历树的每个项目。
我的功能:
def __iter__(self):
"""
in-order traversal of a binary search tree
"""
if self.root is not None:
self.check(self.root)
def check(self, cur_node):
if cur_node is not None:
self.check(cur_node.left)
yield cur_node.data #if I were to print this data member, it would be fine
self.check(cur_node.right)
使用迭代测试此函数时,例如
for i in tree:
我收到此错误:
TypeError: iter() returned non-iterator of type 'NoneType'
【问题讨论】: