class Solution {
public static TreeNode dfs(TreeNode root){
if(root == null) return null;
TreeNode left = dfs(root.left);
TreeNode right = dfs(root.right);
root.left = right;
root.right = left;
return root;
}
public static TreeNode invertTree(TreeNode root) {
TreeNode answer = dfs(root);
return answer;
}
}
이를 refactoring 한 코드는
class Solution {
public TreeNode invertTree(TreeNode root) {
if(root == null) return null;
TreeNode temp = invertTree(root.left);
root.left = invertTree(root.right);
root.right = temp;
return root;
}
}
invertTree 함수 자체가 dfs 로써 임시적인 저장소인 temp를 이용하여 세 줄로 간략화할 수 있다.