429 N叉树的层序遍历-中等
题目:
给定一个 N 叉树,返回其节点值的层序遍历。(即从左到右,逐层遍历)。
树的序列化输入是用层序遍历,每组子节点都由 null 值分隔(参见示例)。
分析:bfs
换汤不换药,还是老规矩,一层层的搜索。
// date 2022/10/21
func levelOrder(root *Node) [][]int {
res := make([][]int, 0, 16)
if root == nil {
return res
}
queue := make([]*Node, 0, 16)
queue = append(queue, root)
for len(queue) != 0 {
n := len(queue)
lRes := make([]int, 0, 16)
for i := 0; i < n; i++ {
cur := queue[i]
lRes = append(lRes, cur.Val)
for j := 0; j < len(cur.Children); j++ {
if cur.Children[j] != nil {
queue = append(queue, cur.Children[j])
}
}
}
queue = queue[n:]
res = append(res, lRes)
}
return res
}
最后更新于