姊妹篇:

107. 二叉树的层次遍历 II



102. 二叉树的层序遍历

难度: 中等


宽度优先搜索算法(又称广度优先搜索)是最简便的图的搜索算法之一,这一算法也是很多重要的图的算法的原型。Dijkstra单源最短路径算法和Prim最小生成树算法都采用了和宽度优先搜索类似的思想。其别名又叫BFS(Breadth First Search),属于一种盲目搜寻法,目的是系统地展开并检查图中的所有节点,以找寻结果。




递归写法:

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

//Definition for a binary tree node.
type TreeNode struct {
Val int
Left *TreeNode
Right *TreeNode
}

var res [][]int

func levelOrder(root *TreeNode) [][]int {
res = [][]int{}
bfs(root, 0)
return res

}

func bfs(root *TreeNode, level int) {
if root != nil {
if len(res) == level {
res = append(res, []int{})
}

res[level] = append(res[level], root.Val)
bfs(root.Left, level+1)
bfs(root.Right, level+1)
}
}



参考:

二叉树的层序遍历 golang