二叉树层序遍历 LCR 150.彩灯装饰记录-ii
题目链接: https://leetcode.cn/problems/cong-shang-dao-xia-da-yin-er-cha-shu-ii-lcof/description/
md
在1的基础上, 多了一个level进行保存每一层的结果, 然后在循环外, 把level加入到数组中go
/**
* Definition for a binary tree node.
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
func decorateRecord(root *TreeNode) [][]int {
if root == nil {
return [][]int{}
}
res := make([][]int, 0)
queue := []*TreeNode{root}
for len(queue) > 0 {
length := len(queue)
level := make([]int, 0, length)
for j := 0; j < length; j++ {
node := queue[0]
queue = queue[1:]
// 记录当前层的值
level = append(level, node.Val)
// 更新队列
if node.Left != nil {
queue = append(queue, node.Left)
}
if node.Right != nil {
queue = append(queue, node.Right)
}
}
res = append(res, level)
}
return res
}