https://leetcode.com/problems/invert-binary-tree/description/
이진트리를 뒤집는 문제다.
그림만 보면 아래 액션으로 해결할 수 있어 보임.
다만 root를 리턴하라고 했으므로 재귀 함수는 따로 빼서 진행하는게 좋겠다.
class Solution {
public TreeNode invertTree(TreeNode root) {
swapNodes(root);
return root;
}
private void swapNodes(TreeNode node) {
if (node == null) {
return;
}
TreeNode temp = node.right;
node.right = node.left;
node.left = temp;
swapNodes(node.left);
swapNodes(node.right);
}
}
GPT한테 피드백 줄거 없냐고 물어보니 콜스택 위험때문에 BFS도 권장한다고 함
문제에서 주어지는 트리 깊이가 굉장히 크다면 이 점은 항상 고려해봐야겠다.