(Tree, Easy) Invert Binary Tree

송재호·2025년 8월 10일
0

https://leetcode.com/problems/invert-binary-tree/description/

이진트리를 뒤집는 문제다.
그림만 보면 아래 액션으로 해결할 수 있어 보임.

  1. 현재 노드의 left와 right 포인터를 뒤바꾼다.
  2. left, right 각각에 대해 재귀적으로 이 작업을 반복한다.

다만 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도 권장한다고 함
문제에서 주어지는 트리 깊이가 굉장히 크다면 이 점은 항상 고려해봐야겠다.

profile
식지 않는 감자

0개의 댓글