hon. Bei BinaryNode müssen wir vor allem aufpassen, dass wir nicht über None iterieren – None versteht nicht das Iterator-Protokoll (warum wohl?), und wir würden einen AttributeError kriegen, wenn wir die Iteration probieren würden.

  def __iter__(self):
    yield self
    for node in [self.left, self.right]:
      if node is not None:
        for child in node:
          yield child