그래프 문제로 바꿔서 풀면? => 불가
-> 그래프형태로 만들어줌
-> 근데 val 범위가 -100부터 100까지임 안됨
어케 풀라는거..? 오늘 트리 문제 처음 풀어봄
que에 부모노드를 넣어주고 BFS 시작
(중요) 즉, BFS로 진행하면서 레벨단위로 큐에 append()하고 depth를 체크해나감
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
from collections import deque
class Solution:
def maxDepth(self, root: Optional[TreeNode]) -> int:
if root is None:
return 0
que = deque()
que.append(root)
depth = 0
while que:
depth += 1 # 레벨 방문할 때마다 ++됨
for _ in range(len(que)): # 현재 레벨의 노드 수만큼만 반복 (루트=1, 인터널=2)
current_level_node = que.popleft() # 현재 레벨의 모든 노드의 자식 노드를 전부 append() ~> BFS를 위해
if current_level_node.left != None:
que.append(current_level_node.left)
if current_level_node.right != None:
que.append(current_level_node.right)
return depth