Skip to content

Commit 8061a62

Browse files
Invert Binary Tree
1 parent 6552aef commit 8061a62

File tree

1 file changed

+44
-0
lines changed

1 file changed

+44
-0
lines changed

invert-binary-tree/jaejeong1.java

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
/**
2+
* Definition for a binary tree node.
3+
* public class TreeNode {
4+
* int val;
5+
* TreeNode left;
6+
* TreeNode right;
7+
* TreeNode() {}
8+
* TreeNode(int val) { this.val = val; }
9+
* TreeNode(int val, TreeNode left, TreeNode right) {
10+
* this.val = val;
11+
* this.left = left;
12+
* this.right = right;
13+
* }
14+
* }
15+
*/
16+
class Solution {
17+
// 풀이: child node로 내려가면서 재귀로 계속 left와 right를 바꿔준다.
18+
// TC: O(N)
19+
// SC: O(N)
20+
public TreeNode invertTree(TreeNode root) {
21+
return invert(root);
22+
}
23+
24+
private TreeNode invert(TreeNode node) {
25+
if (node == null) {
26+
return node;
27+
}
28+
29+
node = swap(node);
30+
31+
invert(node.left);
32+
invert(node.right);
33+
34+
return node;
35+
}
36+
37+
private TreeNode swap(TreeNode node) {
38+
var temp = node.left;
39+
node.left = node.right;
40+
node.right = temp;
41+
42+
return node;
43+
}
44+
}

0 commit comments

Comments
 (0)