Я пытаюсь сделать preOrder рекурсивным, чтобы я мог сделать что-то вроде:
Учитывая массив представлений дерева [2,1,3] (программа фактически использует TreeNode, а именно TreeNode (2)
x = preOrder(root)
print x.next() # 1
print x.next() # 2
print x.next() # 3
Но, учитывая следующий код, я могу вызвать x.next () только один раз, и после первой итерации ничего не возвращается.
def preOrder(root):
if root is not None:
preOrder(root.left)
self.lChild = root.left
self.rChild = root.right
yield root.val
preOrder(root.right)
Как я могу это исправить?
# class TreeNode(object):
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None