剑指 Offer32 - I. 从上到下打印二叉树.md
easy
从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。
例如:
给定二叉树: [3,9,20,null,null,15,7]
,
1
2
3
4
5
| 3
/ \
9 20
/ \
15 7
|
返回:
队列
就是一个层序遍历
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| // 队列实现层序遍历
func levelOrder(root *TreeNode) []int {
if root == nil {
return []int{}
}
queue := make([]*TreeNode, 0)
queue = append(queue, root)
result := make([]int, 0)
for len(queue) != 0 {
curNode := queue[0]
queue = queue[1:]
result = append(result, curNode.Val)
if curNode.Left != nil {
queue = append(queue, curNode.Left)
}
if curNode.Right != nil {
queue = append(queue, curNode.Right)
}
}
return result
}
|