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