File tree Expand file tree Collapse file tree 1 file changed +44
-0
lines changed Expand file tree Collapse file tree 1 file changed +44
-0
lines changed Original file line number Diff line number Diff line change
1
+ from typing import Optional
2
+
3
+
4
+ class TreeNode :
5
+ def __init__ (self , val , left = None , right = None ):
6
+ self .val = val
7
+ self .left = left
8
+ self .right = right
9
+
10
+
11
+ """
12
+ - L/R ๋
ธ๋์ ์์น ๋ณ๊ฒฝ ๋ฐ๋ณต - ์ฌ๊ท/๋ฐ๋ณต
13
+ - ํธ๋ฆฌ ์ํ: ๋ฐ๋ณต๋ฌธ->BFS(Queue)
14
+ 1. ํ์ ํ์ฌ ๋
ธ๋ ์ถ๊ฐ
15
+ 2. ํ์์ ๋
ธ๋ ๊บผ๋
16
+ 3. ๊บผ๋ธ ๋
ธ๋์ ์ผ์ชฝ<->์ค๋ฅธ์ชฝ ์์ ์์น ๋ณ๊ฒฝ
17
+ 4. ์์น๋ฅผ ๋ฐ๊พผ ์์ ๋
ธ๋๋ค์ด ์๋ค๋ฉด, ๋ค์ ํ์ ์ฝ์
18
+ 5. ํ๊ฐ ๋น ๋๊น์ง ๋ฐ๋ณต
19
+ """
20
+
21
+ from collections import deque
22
+
23
+
24
+ class Solution :
25
+ def invertTree (self , root : Optional [TreeNode ]) -> Optional [TreeNode ]:
26
+
27
+ if not root :
28
+ return
29
+
30
+ que = deque ([root ])
31
+
32
+ while que :
33
+ node = que .popleft ()
34
+
35
+ # ๋
ธ๋์ ์ผ์ชฝ๊ณผ ์ค๋ฅธ์ชฝ ์์ ๊ตํ
36
+ node .left , node .right = node .right , node .left
37
+
38
+ # ๋ฐ๊พผ ์์ ๋
ธ๋๋ค์ด ์์ผ๋ฉด ํ์ ์ถ๊ฐ (ํ๋๋ง ์๊ฑฐ๋ ์๋ ๊ฒฝ์ฐ ์ฒ๋ฆฌ)
39
+ if node .left :
40
+ que .append (node .left )
41
+ if node .right :
42
+ que .append (node .right )
43
+
44
+ return root
You canโt perform that action at this time.
0 commit comments