I have a simple code that does in order traversal, If I remove the yield keyword, however now I only get [1] back using the next() or list() method. How can I get this to work as an inorder traversal of the binary tree as a generator function.
Input: [1,2,3,4,5,null,7]
"""
# Definition for a Node.
class Node:
def __init__(self, val: int = 0, left: 'Node' = None, right: 'Node' = None, next: 'Node' = None):
self.val = val
self.left = left
self.right = right
self.next = next
"""
class Solution:
def connect(self, root: 'Node') -> 'Node':
reader = self.traversal(root)
print(next(reader))
print(next(reader))
print(next(reader))
def traversal(self, root):
if root.left:
self.traversal(root.left)
yield root.val
if root.right:
self.traversal(root.right)