File tree Expand file tree Collapse file tree 2 files changed +54
-0
lines changed Expand file tree Collapse file tree 2 files changed +54
-0
lines changed Original file line number Diff line number Diff line change
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.
Original file line number Diff line number Diff line change 67
67
68
68
- [ maximum-depth-of-binary-tree] ( Easy/maximum-depth-of-binary-tree.md )
69
69
70
+ - [ minimum-depth-of-binary-tree] ( Easy/minimum-depth-of-binary-tree.md )
71
+
70
72
Medium
71
73
------
72
74
You can’t perform that action at this time.
0 commit comments