Files
leetcode/top-100-liked/41/leetcode_test.go
T
2026-06-22 20:50:10 +10:00

36 lines
777 B
Go

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
}