Skip to content

Commit 1cf800b

Browse files
committed
102.二叉树的层序遍历增加Go使用切片解法
1 parent c7f1d33 commit 1cf800b

File tree

1 file changed

+30
-1
lines changed

1 file changed

+30
-1
lines changed

problems/0102.二叉树的层序遍历.md

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -265,7 +265,7 @@ func levelOrder(root *TreeNode) [][]int {
265265

266266
```go
267267
/**
268-
102. 二叉树的层序遍历
268+
102. 二叉树的层序遍历 使用container包
269269
*/
270270
func levelOrder(root *TreeNode) [][]int {
271271
res := [][]int{}
@@ -296,6 +296,35 @@ func levelOrder(root *TreeNode) [][]int {
296296
return res
297297
}
298298

299+
/**
300+
102. 二叉树的层序遍历 使用切片
301+
*/
302+
func levelOrder(root *TreeNode) [][]int {
303+
res := make([][]int, 0)
304+
if root == nil {
305+
return res
306+
}
307+
queue := make([]*TreeNode, 0)
308+
queue = append(queue, root)
309+
for len(queue) > 0 {
310+
size := len(queue)
311+
level := make([]int, 0)
312+
for i := 0; i < size; i++ {
313+
node := queue[0]
314+
queue = queue[1:]
315+
level = append(level, node.Val)
316+
if node.Left != nil {
317+
queue = append(queue, node.Left)
318+
}
319+
if node.Right != nil {
320+
queue = append(queue, node.Right)
321+
}
322+
}
323+
res = append(res, level)
324+
}
325+
return res
326+
}
327+
299328
/**
300329
102. 二叉树的层序遍历:使用切片模拟队列,易理解
301330
*/

0 commit comments

Comments
 (0)