Skip to content

Commit 9d4a7cc

Browse files
committed
solution: invert-binary-tree
1 parent e1695d7 commit 9d4a7cc

File tree

1 file changed

+44
-0
lines changed

1 file changed

+44
-0
lines changed
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
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

0 commit comments

Comments
ย (0)