0

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)
abdullahDev
  • 39
  • 1
  • 6

0 Answers0