public Iterator iteratorLevelOrder() { ArrayUnorderedList> nodes = new ArrayUnorderedList>(); ArrayUnorderedList result = new ArrayUnorderedList(); BinaryTreeNode current; nodes.addToRear (root); while (! nodes.isEmpty()) { current = (BinaryTreeNode)nodes.removeFirst(); if (current != null) { result.addToRear(current.getElement()); nodes.addToRear (current.getLeft()); nodes.addToRear (current.getRight()); }//if else result.addToRear(null); }//while return result.iterator(); }