package Ġle et code . kotlin . tree Ċ Ċ /** Ċ Ġ* ĠQueue Ġmethods Ċ Ġ* ĠAdd () Ġ-- Ġadds Ġat Ġtail Ġin ĠArray Deque Ċ Ġ* Ġremove () Ġ-- Ġremove Ġfrom Ġfront Ġin ĠArray Deque Ċ Ġ* Ċ Ġ* Ġoffer () Ġ-- Ġadds Ġat Ġtail Ġin ĠArray Deque Ċ Ġ* Ġpoll () Ġ-- Ġremove Ġfrom Ġfront Ġin ĠArray Deque Ċ Ġ*/ Ċ @ Experimental Std lib Api Ċ private Ġfun Ġlevel Order ( root : ĠTreeNode ?): ĠList < List < Int >> Ġ{ ĊĠĠĠ Ġval Ġres Ġ= Ġmutable ListOf < Mutable List < Int >>() ĊĠĠĠ Ġif Ġ( root Ġ== Ġnull ) Ġreturn Ġres ĊĠĠĠ Ġval Ġq Ġ= ĠArray Deque < TreeNode >() ĊĠĠĠ Ġq . add ( root ) ĊĠĠĠ Ġwhile Ġ( q . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġsize Ġ= Ġq . size ĊĠĠĠĠĠĠĠ Ġval Ġlist Ġ= Ġmutable ListOf < Int >() ĊĠĠĠĠĠĠĠ Ġwhile Ġ( size -- Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnode Ġ= Ġq . remove First () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist . add ( node .` val `) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnode . left ?. let Ġ{ Ġq . add ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnode . right ?. let Ġ{ Ġq . add ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġres . add ( list ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġres Ċ } Ċ Ċ // Ġtodo : Ġdo Ġit Ġwith Ġrecursion Ċ