/** * Example: * var ti = TreeNode(5) * var v = ti.`val` * Definition for a binary tree node. * class TreeNode(var `val`: Int) { * var left: TreeNode? = null * var right: TreeNode? = null * } */ classSolution { funlevelOrder(root: TreeNode?): List<List<Int>> { var result: MutableList<List<Int>> = mutableListOf() if (root == null) { return result } var queue: Queue<TreeNode> = LinkedList() queue.add(root) while (queue.isNotEmpty()) { var elementArray: MutableList<Int> = mutableListOf() for (i in0 until queue.size) { var node: TreeNode = queue.poll() elementArray.add(node.`val`) node.left?.let { queue.add(it) } node.right?.let { queue.add(it) } } result.add(elementArray) } return result } }
Point of Thinking
Level 하나당 queue에 모든 노드를 쌓은 뒤, 한 번 순회할때마다 리스트를 만들어서 반환한다.