package Ġq 1 0 1 _ 1 5 0 . q 1 0 1 _ 1 1 0 Ċ Ċ import Ġkotlin . collections . Array Deque Ċ Ċ /** Ċ Ġ* Ġhttps :// leetcode - cn . com / problems / binary - tree - level - order - traversal / Ċ Ġ*/ Ċ class ĠSolution 1 0 2 Ġ{ ĊĠĠĠ Ġfun Ġlevel Order ( root : ĠTreeNode ?): ĠList < List < Int >> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult List Ġ= Ġmutable ListOf < List < Int >>() ĊĠĠĠĠĠĠĠ Ġroot Ġ?: Ġreturn Ġresult List ĊĠĠĠĠĠĠĠ Ġval Ġnode Queue Ġ= ĠArray Deque < TreeNode >() ĊĠĠĠĠĠĠĠ Ġnode Queue . add ( root ) ĊĠĠĠĠĠĠĠ Ġvar Ġsize Ġ= Ġnode Queue . size ĊĠĠĠĠĠĠĠ Ġwhile Ġ( size Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalues Ġ= Ġmutable ListOf < Int >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepeat ( size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnode Ġ= Ġnode Queue . remove First () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalues . add ( node .` val `) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnode . left ?. let Ġ{ Ġnode Queue . add ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnode . right ?. let Ġ{ Ġnode Queue . add ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsize Ġ= Ġnode Queue . size ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult List . add ( values ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġresult List ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠTreeNode ( var Ġ` val `: ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġleft : ĠTreeNode ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġvar Ġright : ĠTreeNode ? Ġ= Ġnull ĊĠĠĠ Ġ} Ċ }