code: def walk(node):
      
      from collections import deque
      todo = deque([node])
      while todo:
          node = todo.popleft()
          todo.extend(iter_child_nodes(node))
          yield node
docs: Iterate over all nodes.  This is useful if you only want to modify nodes in
      place and don't care about the context or the order the nodes are returned.