# 题目链接
# 题目描述
从上往下打印出二叉树的每个节点,同层节点从左至右打印。
例如,以下二叉树层次遍历的结果为:1,2,3,4,5,6,7

# 解题思路
1 采用队列形式进行迭代,广度优先遍历 2 首先根节点入队,然后遍历当前队列元素,把当前的元素左右子节点加入队列 3 将刚才遍历的数出队
/**
* Definition for a binary tree node.
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
func levelOrder(root *TreeNode) []int {
var res []int
if root==nil{
return res
}
queue := []*TreeNode{root}
for len(queue)>0{
size :=len(queue)
for i:=0;i<size;i++{
node :=queue[i]
if node.Left!=nil{
queue = append(queue,node.Left)
}
if node.Right!=nil{
queue = append(queue,node.Right)
}
res = append(res,node.Val)
}
queue = queue[size:]
}
return res
}
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
26
27
28
29
30
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30