File tree Expand file tree Collapse file tree 1 file changed +30
-1
lines changed Expand file tree Collapse file tree 1 file changed +30
-1
lines changed Original file line number Diff line number Diff line change @@ -265,7 +265,7 @@ func levelOrder(root *TreeNode) [][]int {
265265
266266``` go
267267/* *
268- 102. 二叉树的层序遍历
268+ 102. 二叉树的层序遍历 使用container包
269269 */
270270func 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/* *
300329102. 二叉树的层序遍历:使用切片模拟队列,易理解
301330 */
You can’t perform that action at this time.
0 commit comments