Solution
# ์ด์ง ํธ๋ฆฌ ๋ฃจํธ๊ฐ ์ฃผ์ด์ง๋ฉด -> ๊ทธ ์ต๋ ๊น์ด ๋ฆฌํด
# ์ด์ง ํธ๋ฆฌ์ ์ต๋ ๊น์ด -> ๋ฃจํธ ๋
ธ๋์์ ๊ฐ์ฅ ๋จผ ๋ฆฌํ ๋
ธ๋๊น์ง ๊ฐ์ฅ ๊ธด ๊ฒฝ๋ก์ ๋
ธ๋ ์
from typing import Optional
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
class Solution:
def maxDepth(self, root: Optional[TreeNode]) -> int:
# ์ฌ๊ท(์๋์์ ์๋ก) -> ์ต๋ ๊น์ด: ์ข์ธก ์์ ํธ๋ฆฌ์, ์ฐ์ธก ์์ ํธ๋ฆฌ ์ค ํฐ ๊ฐ
if not root:
return 0
return max(self.maxDepth(root.left), self.maxDepth(root.right)) + 1
# ์คํ(์์์ ์๋๋ก) -> ๊ฒฝ์ฐ์ ๋ฐ๋ผ ๋ ๋ณต์ก์ฐ
# if not root:
# return 0
#
# max_depth = 0
# stack = [(root, 1)]
# while stack:
# node, depth = stack.pop()
# max_depth = max(depth, max_depth)
# if node.left:
# stack.append((node.left, depth + 1))
# if node.right:
# stack.append((node.right, depth + 1,))
#
# return max_depth
Leave a comment