FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
algorithms/tree/min_height.py at master · adrianhust/algorithms · GitHub
adrianhust
algorithms
Repository navigation
Code
Pull requests
Actions
Projects
Wiki
Security and quality
Insights
Expand file tree
Breadcrumbs
algorithms
/
tree
/
min_height.py
Copy path
More file actions
More file actions
Latest commit
History
History
History
56 lines (48 loc) · 1.22 KB
Breadcrumbs
algorithms
/
tree
/
min_height.py
Copy path
File metadata and controls
56 lines (48 loc) · 1.22 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
class
Node
():
def
__init__
(
self
,
val
=
0
):
self
.
val
=
val
self
.
left
=
None
self
.
right
=
None
def
minDepth
(
self
,
root
):
"""
:type root: TreeNode
:rtype: int
"""
if
not
root
:
return
0
if
not
root
.
left
or
not
root
.
right
:
return
max
(
self
.
minDepth
(
root
.
left
),
self
.
minDepth
(
root
.
right
))
+
1
return
min
(
self
.
minDepth
(
root
.
left
),
self
.
minDepth
(
root
.
right
))
+
1
# iterative
def
min_height
(
root
):
if
not
root
:
return
0
height
=
0
level
=
[
root
]
while
level
:
height
+=
1
new_level
=
[]
for
node
in
level
:
if
not
node
.
left
and
not
node
.
right
:
return
height
if
node
.
left
:
new_level
.
append
(
node
.
left
)
if
node
.
right
:
new_level
.
append
(
node
.
right
)
level
=
new_level
return
height
def
print_tree
(
root
):
if
root
:
print
(
root
.
val
)
print_tree
(
root
.
left
)
print_tree
(
root
.
right
)
tree
=
Node
(
10
)
tree
.
left
=
Node
(
12
)
tree
.
right
=
Node
(
15
)
tree
.
left
.
left
=
Node
(
25
)
tree
.
left
.
left
.
right
=
Node
(
100
)
tree
.
left
.
right
=
Node
(
30
)
tree
.
right
.
left
=
Node
(
36
)
height
=
min_height
(
tree
)
print_tree
(
tree
)
print
(
"height:"
,
height
)
Back
|
FazBrowse Home
|
New Git URL