File tree Expand file tree Collapse file tree 1 file changed +36
-0
lines changed
maximum-depth-of-binary-tree Expand file tree Collapse file tree 1 file changed +36
-0
lines changed Original file line number Diff line number Diff line change 1+ import collections
2+
3+ # Definition for a binary tree node.
4+ class TreeNode (object ):
5+ def __init__ (self , val = 0 , left = None , right = None ):
6+ self .val = val
7+ self .left = left
8+ self .right = right
9+
10+ class Solution (object ):
11+ def maxDepth (self , root ):
12+ """
13+ :type root: Optional[TreeNode]
14+ :rtype: int
15+ 주어진 이진 트리의 최대 깊이(루프에서 리프까지의 가장 긴 경로의 노드 수)를 구하는 문제
16+ BFS로 큐를 사용해 최대 깊이를 구함.
17+ Time complexity: O(n), n개의 노드를 한 번씩 방문.
18+ Space complexity: O(w), w는 트리의 최대 너비 (n/2).
19+ """
20+ if root is None :
21+ return 0
22+
23+ depth = 0
24+
25+ queue = collections .deque ([root ])
26+
27+ while queue :
28+ depth += 1
29+ level_size = len (queue )
30+ for _ in range (level_size ):
31+ node = queue .popleft ()
32+ if node .left is not None :
33+ queue .append (node .left )
34+ if node .right is not None :
35+ queue .append (node .right )
36+ return depth
You can’t perform that action at this time.
0 commit comments