Avl Iterator
Walks an AVL tree in iteration order. Once a node has been returned, its left, right and parent links are no longer used. For this reason it is safe to transform these links as you walk a tree.
Warning: this iterator is destructive. It clears the parent node of all nodes in the tree. It is an error to make a partial iteration of a tree.