File tree Expand file tree Collapse file tree 2 files changed +48
-0
lines changed Expand file tree Collapse file tree 2 files changed +48
-0
lines changed Original file line number Diff line number Diff line change
1
+ Code
2
+ ====
3
+
4
+ ``` go
5
+ /* *
6
+ * Definition for a Node.
7
+ * type Node struct {
8
+ * Val int
9
+ * Children []*Node
10
+ * }
11
+ */
12
+
13
+ func maxDepth (root *Node ) int {
14
+ depth := 0
15
+ if root == nil {
16
+ return depth
17
+ }
18
+
19
+ level := []*Node{root}
20
+
21
+ for len (level) != 0 {
22
+ newLevel := []*Node{}
23
+ depth += 1
24
+ for _ , node := range level {
25
+ for _ , child := range node.Children {
26
+ if child != nil {
27
+ newLevel = append (newLevel, child)
28
+ }
29
+ }
30
+ }
31
+
32
+ level = newLevel
33
+ }
34
+
35
+ return depth
36
+ }
37
+ ```
38
+
39
+ Solution in mind
40
+ ================
41
+
42
+ - Perform a simple level order traversal using a queue.
43
+
44
+ - Iterate through each level, populating next level using non nil children of current level.
45
+
46
+ - For each level traversed, increment depth.
Original file line number Diff line number Diff line change 69
69
70
70
- [ minimum-depth-of-binary-tree] ( Easy/minimum-depth-of-binary-tree.md )
71
71
72
+ - [ maximum-depth-of-n-ary-tree] ( Easy/maximum-depth-of-n-ary-tree.md )
73
+
72
74
Medium
73
75
------
74
76
You can’t perform that action at this time.
0 commit comments