В решении от Javarush есть такой кусок. Расскажите что за конструкция с do такая, не встречал раньше
do {
     if (!subQueue.isEmpty()) {
         entry = subQueue.poll();
     }
     if (entry.leftChild != null) {
         list.add(entry.leftChild);
         subQueue.add(entry.leftChild);
     }
     if (entry.rightChild != null) {
         list.add(entry.rightChild);
         subQueue.add(entry.rightChild);
     }
 } while (!subQueue.isEmpty());
 return list;