Skip to content

二叉树层序遍历 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
}
本站访客数 人次 本站总访问量