Skip to content

Commit e55157c

Browse files
committed
[7th batch] week 4 - maximum depth of binary tree
1 parent 28bf5d3 commit e55157c

1 file changed

Lines changed: 22 additions & 0 deletions

File tree

โ€Žmaximum-depth-of-binary-tree/liza0525.pyโ€Ž

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,3 +36,25 @@ def find_max_depth(cur_node, depth):
3636
max_depth = find_max_depth(root, 0)
3737

3838
return max_depth
39+
40+
41+
# 7๊ธฐ ํ’€์ด
42+
# ์‹œ๊ฐ„๋ณต์žก๋„: O(n)
43+
# - ํŠธ๋ฆฌ์˜ ๋ชจ๋“  ๋…ธ๋“œ๋ฅผ ํ•œ ๋ฒˆ ์”ฉ ๋ฐฉ๋ฌธํ•˜๋ฏ€๋กœ, ์ „์ฒด ๋…ธ๋“œ ์ˆ˜ n๋งŒํผ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆผ
44+
# ๊ณต๊ฐ„๋ณต์žก๋„: O(n)
45+
# - ํŠธ๋ฆฌ์˜ ๋†’์ด๋งŒํผ ์žฌ๊ท€ ์Šคํƒ์ด ์Œ“์ž„. ์ตœ์•…์˜ ๊ฒฝ์šฐ๋Š” ํŠธ๋ฆฌ๊ฐ€ ํ•œ ์ชฝ์œผ๋กœ ์น˜์šฐ์ณค์„ ๋•Œ์ด๋ฏ€๋กœ ๋…ธ๋“œ n๋งŒํผ์˜ ์ตœ๋Œ€ ์Šคํƒ์„ ์Œ“๊ฒŒ ๋จ
46+
class Solution:
47+
def maxDepth(self, root: Optional[TreeNode]) -> int:
48+
def find_depth(node, depth):
49+
if not node:
50+
# node๊ฐ€ None์ผ ๋•Œ๋Š” depth์„ ๊ทธ๋Œ€๋กœ ๋ฐ˜ํ™˜
51+
return depth
52+
# ํ˜„์žฌ ๋…ธ๋“œ ๊ธฐ์ค€ ์™ผ์ชฝ ๋…ธ๋“œ ์ชฝ์˜ ๊นŠ์ด ํƒ์ƒ‰
53+
left_depth = find_depth(node.left, depth + 1)
54+
# ํ˜„์žฌ ๋…ธ๋“œ ๊ธฐ์ค€ ์˜ค๋ฅธ์ชฝ ๋…ธ๋“œ ์ชฝ์˜ ๊นŠ์ด ํƒ์ƒ‰
55+
right_depth = find_depth(node.right, depth + 1)
56+
57+
# ์™ผ์ชฝ๊ณผ ์˜ค๋ฅธ์ชฝ ์ค‘ ๋” ๊นŠ์€ depth๋ฅผ ๋ฐ˜ํ™˜
58+
return max(left_depth, right_depth)
59+
60+
return find_depth(root, 0)

0 commit comments

Comments
ย (0)