Files
LeetCode-Go/leetcode/0429.N-ary-Tree-Level-Order-Traversal/429. N-ary Tree Level Order Traversal.go
2021-08-08 22:44:30 +08:00

40 lines
632 B
Go

package leetcode
/**
* Definition for a Node.
* type Node struct {
* Val int
* Children []*Node
* }
*/
type Node struct {
Val int
Children []*Node
}
func levelOrder(root *Node) [][]int {
var res [][]int
var temp []int
if root == nil {
return res
}
queue := []*Node{root, nil}
for len(queue) > 1 {
node := queue[0]
queue = queue[1:]
if node == nil {
queue = append(queue, nil)
res = append(res, temp)
temp = []int{}
} else {
temp = append(temp, node.Val)
if len(node.Children) > 0 {
queue = append(queue, node.Children...)
}
}
}
res = append(res, temp)
return res
}