package top100liked // https://leetcode.cn/problems/binary-tree-level-order-traversal/?envType=study-plan-v2&envId=top-100-liked type TreeNode struct { Val int Left *TreeNode Right *TreeNode } func levelOrder(root *TreeNode) [][]int { if root == nil { return [][]int{} } queue := []*TreeNode{root} res := [][]int{} for len(queue) > 0 { currentLayerRes := []int{} tmpQueue := []*TreeNode{} for i := range queue { currentNode := queue[i] currentLayerRes = append(currentLayerRes, currentNode.Val) if currentNode.Left != nil { tmpQueue = append(tmpQueue, currentNode.Left) } if currentNode.Right != nil { tmpQueue = append(tmpQueue, currentNode.Right) } } queue = tmpQueue res = append(res, currentLayerRes) } return res }