Dequeue all nodes of current level and Enqueue all nodes of next level
while ( nodeCount > 0 ) { Node node = q . First . Value ; Console . Write ( node . data + " ▁ " ) ; q . RemoveFirst ( ) ; if ( node . left != null ) { q . AddLast ( node . left ) ; } if ( node . right != null ) { q . AddLast ( node . right ) ; } nodeCount -- ; } Console . WriteLine ( ) ; } }