File tree Expand file tree Collapse file tree 1 file changed +42
-0
lines changed
binary-tree-level-order-traversal Expand file tree Collapse file tree 1 file changed +42
-0
lines changed Original file line number Diff line number Diff line change 1+ from collections import deque
2+ from typing import List , Optional
3+
4+
5+ class TreeNode :
6+ def __init__ (self , val = 0 , left = None , right = None ):
7+ self .val = val
8+ self .left = left
9+ self .right = right
10+
11+
12+ class Solution :
13+ def levelOrder (self , root : Optional [TreeNode ]) -> List [List [int ]]:
14+ """
15+ - Idea: ๋๋น ์ฐ์ ํ์(BFS)๋ฅผ ์ด์ฉํ์ฌ ์ด์ง ํธ๋ฆฌ๋ฅผ ๋จ๊ณ ๋ณ๋ก ์ํํ๋ค.
16+ - Time Complexity: O(n). n์ ํธ๋ฆฌ์ ๋
ธ๋ ์.
17+ ๋ชจ๋ ๋
ธ๋๋ฅผ ํ๋ฒ์ฉ ๋ฐฉ๋ฌธํ๋ฏ๋ก O(n) ์๊ฐ์ด ๊ฑธ๋ฆฐ๋ค.
18+ - Space Complexity: O(n). n์ ํธ๋ฆฌ์ ๋
ธ๋ ์.
19+ ๊ฐ์ฅ ์๋ ๋จ๊ณ์ ์๋ ๋
ธ๋๋ฅผ ์ ์ฅํ ๋ ๊ฐ์ฅ ๋ง์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ๊ณ , ์ด๋ n์ ๋น๋กํ๊ธฐ ๋๋ฌธ์ O(n) ๋งํผ์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ํ์ํ๋ค.
20+ """
21+ if not root :
22+ return []
23+
24+ result = []
25+ queue = deque ()
26+ queue .append (root )
27+
28+ while queue :
29+ level = []
30+
31+ for i in range (len (queue )):
32+ node = queue .popleft ()
33+ level .append (node .val )
34+
35+ if node .left :
36+ queue .append (node .left )
37+ if node .right :
38+ queue .append (node .right )
39+
40+ result .append (level )
41+
42+ return result
You canโt perform that action at this time.
0 commit comments