File tree Expand file tree Collapse file tree 1 file changed +39
-6
lines changed Expand file tree Collapse file tree 1 file changed +39
-6
lines changed Original file line number Diff line number Diff line change 1
1
"""
2
2
Constraints:
3
- -
3
+ - The number of nodes in the tree is in the range [0, 100].
4
+ - -100 <= Node.val <= 100
4
5
5
- Time Complexity:
6
- -
6
+ Time Complexity:
7
+ - O(n): ๊ฐ ๋
ธ๋๋ฅผ ํ ๋ฒ์ฉ ๋ฐฉ๋ฌธํจ
7
8
8
- Space Complexity:
9
- -
9
+ Space Complexity:
10
+ - O(w): w๋ ํธ๋ฆฌ์ ์ต๋ ๋๋น(width)
10
11
11
12
ํ์ด๋ฐฉ๋ฒ:
12
- 1.
13
+ 1. ํ๋ฅผ ์ฌ์ฉํ BFS(๋๋น ์ฐ์ ํ์)
14
+ 2. FIFO(First In First Out)๋ก ๋
ธ๋๋ฅผ ์ฒ๋ฆฌํจ
15
+ 3. ๊ฐ ๋
ธ๋๋ฅผ ๋ฐฉ๋ฌธํ ๋๋ง๋ค:
16
+ - ์ผ์ชฝ๊ณผ ์ค๋ฅธ์ชฝ ์์ ๋
ธ๋์ ์์น๋ฅผ ๊ตํ
17
+ - ๊ตํ๋ ์์ ๋
ธ๋๋ค์ ํ์ ์ถ๊ฐํ์ฌ ๋ค์ ๋
ธ๋๋ฅผ ์ฒ๋ฆฌํจ
13
18
"""
14
19
20
+ # Definition for a binary tree node.
21
+ # class TreeNode:
22
+ # def __init__(self, val=0, left=None, right=None):
23
+ # self.val = val
24
+ # self.left = left
25
+ # self.right = right
26
+ from collections import deque
27
+
28
+ class Solution :
29
+ def invertTree (self , root : Optional [TreeNode ]) -> Optional [TreeNode ]:
30
+ if not root :
31
+ return None
32
+
33
+ queue = deque ([root ])
34
+
35
+ while queue :
36
+ node = queue .popleft ()
37
+
38
+ node .left , node .right = node .right , node .left
39
+
40
+ if node .left :
41
+ queue .append (node .left )
42
+ if node .right :
43
+ queue .append (node .right )
44
+
45
+ return root
46
+
47
+
You canโt perform that action at this time.
0 commit comments