Use the queue data structure for level order insertion and push the root of tree to Queue
List < node > Q = new List < node > ( ) ; Q . Add ( root ) ; while ( Q . Count != 0 ) { node temp = Q [ 0 ] ; Q . RemoveAt ( 0 ) ;