LeetCode 剑指 Offer 32 - I. 从上到下打印二叉树
题目描述
给定一个二叉树,返回其节点值的层序遍历(即逐层地,从左到右访问所有节点)。返回的结果需要是一个列表,其中每个元素是一个列表,表示每一层的节点值。
示例 1: 输入:
1 2 3 4 5 3 / \ 9 20 / \ 15 7输出:
1 [[3], [9, 20], [15, 7]]
示例 2: 输入:
1 1输出:
1 [[1]]
提示:
- 节点数目在范围 [0, 2000] 内。
- -1000 <= Node.val <= 1000
思路分析
思路描述
参考代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
func levelOrder(root *TreeNode) [][]int {
var res [][]int
if root == nil {
return res
}
queue := []*TreeNode{root}
for len(queue) > 0 {
var curLevel []int
var nextQueue []*TreeNode
for _, cur := range queue {
curLevel = append(curLevel, cur.Val)
if cur.Left != nil {
nextQueue = append(nextQueue, cur.Left)
}
if cur.Right != nil {
nextQueue = append(nextQueue, cur.Right)
}
}
res = append(res, curLevel)
queue = nextQueue
}
return res
}
1
write your code here
1
write your code here
相似题目
CC BY-NC-SA 4.0
许可协议,转载请注明出处!
本博客所有文章除特别声明外,均采用