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