姊妹篇:
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 29 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
原文链接: https://dashen.tech/2015/03/01/leetcode-102-二叉树的层序遍历/
版权声明: 转载请注明出处.