MCPcopy Create free account
hub / github.com/austingebauer/go-leetcode / levelOrder0

Function levelOrder0

binary_tree_level_order_traversal_102/solution.go:45–81  ·  view source on GitHub ↗

Note: study again.

(root *TreeNode)

Source from the content-addressed store, hash-verified

43
44// Note: study again.
45func levelOrder0(root *TreeNode) [][]int {
46 levels := make([][]int, 0)
47 if root == nil {
48 return levels
49 }
50
51 levelCnt := 1
52 q := []*TreeNode{root}
53 for len(q) > 0 {
54 // dequeue and create level levelCnt times
55 newLevelCnt := 0
56 level := make([]int, 0)
57 for i := 0; i < levelCnt; i++ {
58 // add nodes value to the level
59 n := q[0]
60 level = append(level, n.Val)
61
62 if n.Left != nil {
63 q = append(q, n.Left)
64 newLevelCnt++
65 }
66
67 if n.Right != nil {
68 q = append(q, n.Right)
69 newLevelCnt++
70 }
71
72 // dequeue the node
73 q = q[1:]
74 }
75
76 levels = append(levels, level)
77 levelCnt = newLevelCnt
78 }
79
80 return levels
81}

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected