File tree Expand file tree Collapse file tree 1 file changed +36
-0
lines changed Expand file tree Collapse file tree 1 file changed +36
-0
lines changed Original file line number Diff line number Diff line change
1
+ package leetcode_study
2
+
3
+ /*
4
+ * binary tree ์ข์ฐ ๋ฒ๊ฒฝ ๋ฌธ์
5
+ * ์ฌ๊ท๋ฅผ ํตํด ๋ฌธ์ ํด๊ฒฐ
6
+ * ์๊ฐ ๋ณต์ก๋: O(n)
7
+ * -> n๊ฐ์ ๋
ธ๋๋ฅผ ํ ๋ฒ์ฉ ๋ฐฉ๋ฌธ
8
+ * ๊ณต๊ฐ ๋ณต์ก๋: O(n) ํน์ O(log n)
9
+ * -> ์ฌ๊ท ์ฌ์ฉ ์ ์คํ์ ์์
10
+ * -> ๊ท ํ์กํ binary tree์ ๊ฒฝ์ฐ O(log n)์ ๊ณต๊ฐ์ด ํ์ํ๊ณ ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ(์ต์
์ ๊ฒฝ์ฐ) O(n)์ ๊ณต๊ฐ ๋ณต์ก๋ ์๊ตฌ
11
+ * */
12
+ fun invertTree (root : TreeNode ? ): TreeNode ? {
13
+ recursiveNode(root)
14
+ return root
15
+ }
16
+
17
+ fun recursiveNode (parentNode : TreeNode ? ) {
18
+ if (parentNode == null ) return
19
+
20
+ swapNode(parentNode) // ํ์ฌ ๋
ธ๋์ left์ right๋ฅผ ๊ตํ
21
+ recursiveNode(parentNode.left) // ์ผ์ชฝ ์๋ธํธ๋ฆฌ ํ์
22
+ recursiveNode(parentNode.right) // ์ค๋ฅธ์ชฝ ์๋ธํธ๋ฆฌ ํ์
23
+ }
24
+
25
+ fun swapNode (parentNode : TreeNode ? ) {
26
+ if (parentNode == null ) return
27
+
28
+ val temp = parentNode.left
29
+ parentNode.left = parentNode.right
30
+ parentNode.right = temp
31
+ }
32
+
33
+ class TreeNode (var `val `: Int ) {
34
+ var left: TreeNode ? = null
35
+ var right: TreeNode ? = null
36
+ }
You canโt perform that action at this time.
0 commit comments