Skip to content

Commit 3d6e131

Browse files
committed
Add maximum-depth-of-n-ary-tree
1 parent e5d2b3b commit 3d6e131

File tree

2 files changed

+48
-0
lines changed

2 files changed

+48
-0
lines changed

Easy/maximum-depth-of-n-ary-tree.md

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
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.

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,8 @@ Easy
6969

7070
- [minimum-depth-of-binary-tree](Easy/minimum-depth-of-binary-tree.md)
7171

72+
- [maximum-depth-of-n-ary-tree](Easy/maximum-depth-of-n-ary-tree.md)
73+
7274
Medium
7375
------
7476

0 commit comments

Comments
 (0)