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