Skip to content

Commit e5d2b3b

Browse files
committed
Add minimum-depth-of-binary-tree
1 parent 3c75462 commit e5d2b3b

File tree

2 files changed

+54
-0
lines changed

2 files changed

+54
-0
lines changed

Easy/minimum-depth-of-binary-tree.md

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
Code
2+
====
3+
4+
```go
5+
/**
6+
* Definition for a binary tree node.
7+
* type TreeNode struct {
8+
* Val int
9+
* Left *TreeNode
10+
* Right *TreeNode
11+
* }
12+
*/
13+
func minDepth(root *TreeNode) int {
14+
depth := 0
15+
if root == nil {
16+
return depth
17+
}
18+
19+
level := []*TreeNode{root}
20+
21+
for len(level) != 0 {
22+
newLevel := []*TreeNode{}
23+
depth += 1
24+
for _, node := range level {
25+
if node.Left == nil && node.Right == nil {
26+
return depth
27+
}
28+
29+
if node.Left != nil {
30+
newLevel = append(newLevel, node.Left)
31+
}
32+
33+
if node.Right != nil {
34+
newLevel = append(newLevel, node.Right)
35+
}
36+
}
37+
38+
level = newLevel
39+
}
40+
41+
return depth
42+
}
43+
```
44+
45+
Solution in mind
46+
================
47+
48+
- Perform a level order traversal using a queue.
49+
50+
- Increment depth on reaching new level. Compute next levels as children of current level.
51+
52+
- On encountering a leaf node, return depth as first leaf node encountered in level order will be of minimum depth.

README.md

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

6868
- [maximum-depth-of-binary-tree](Easy/maximum-depth-of-binary-tree.md)
6969

70+
- [minimum-depth-of-binary-tree](Easy/minimum-depth-of-binary-tree.md)
71+
7072
Medium
7173
------
7274

0 commit comments

Comments
 (0)