Medium
Given an n-ary tree, return the level order traversal of its nodes’ values.
Nary-Tree input serialization is represented in their level order traversal, each group of children is separated by the null value (See examples).
Example 1:
Input: root = [1,null,3,2,4,null,5,6]
Output: [[1],[3,2,4],[5,6]]
Example 2:
Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: [[1],[2,3,4,5],[6,7,8,9,10],[11,12,13],[14]]
Constraints:
1000
[0, 104]
import com_github_leetcode.Node
import java.util.LinkedList
import java.util.Queue
/*
* Definition for a Node.
* class Node(var `val`: Int) {
* var neighbors: List<Node?> = listOf()
* }
*/
class Solution {
fun levelOrder(root: Node?): List<List<Int>> {
val result: MutableList<List<Int>> = ArrayList()
if (root == null) {
return result
}
val queue: Queue<Node> = LinkedList<Node>()
queue.offer(root)
while (queue.isNotEmpty()) {
val size: Int = queue.size
val level: MutableList<Int> = ArrayList()
for (i in 0 until size) {
val currentNode: Node = queue.poll()
level.add(currentNode.`val`)
for (child in currentNode.neighbors) {
queue.offer(child)
}
}
result.add(level)
}
return result
}
}