[leetcode] 429. N-ary Tree Level Order Traversal

kldaji·2022년 9월 5일
0

leetcode

목록 보기
46/56

class Solution {
    fun levelOrder(root: Node?): List<List<Int>> {
        if (root == null) return listOf<List<Int>>()
        
        val orders = mutableListOf<MutableList<Int>>()        
        val queue: Queue<Node> = LinkedList()
        queue.add(root!!)
        orders.add(mutableListOf(root.`val`))
        
        while (queue.isNotEmpty()) {
            val size = queue.size
            
            orders.add(mutableListOf())
            
            for (i in 0 until size) {
                val curr = queue.poll()         
                
                for (child in curr.children) {
                    if (child != null) {
                        orders.last().add(child.`val`)
                        queue.add(child)
                    }
                }
            }
        }
        
        return orders.dropLast(1) // leaf node 때문에 추가된 emptyList() 제거
    }
}
profile
다양한 관점에서 다양한 방법으로 문제 해결을 지향하는 안드로이드 개발자 입니다.

0개의 댓글