剑指 Offer 32 - I. 从上到下打印二叉树
剑指 Offer 32 - II. 从上到下打印二叉树 II
和力扣102. 二叉树的层序遍历,107. 二叉树的层序遍历 II类似
//BFS 分层打印【【1】,【2,3】】func levelOrder(root *TreeNode) [][]int {if root == nil {return nil}levels := [][]int{}queue := []*TreeNode{root}for len(queue) > 0 {n := len(queue)level_tmp := []int{}for i := 0; i < n; i++ {root = queue[0]queue = queue[1 :]level_tmp = append(level_tmp, root.Val)if root.Left != nil {queue = append(queue, root.Left)}if root.Right != nil {queue = append(queue, root.Right)}}levels = append(levels, level_tmp) // + xxx 就倒序输出了}return levels}
//BFS 排成一排打印:[1, 2, 3]
func levelOrder(root *TreeNode) []int {
if root == nil {
return nil
}
levels := []int{}
queue := []*TreeNode{root}
for len(queue) > 0 {
root = queue[0]
queue = queue[1 :]
if root.Left != nil {
queue = append(queue, root.Left)
}
if root.Right != nil {
queue = append(queue, root.Right)
}
levels = append(levels, root.Val)
}
return levels
}
