Leetcode/NeetCode

[BinaryTree][Easy] 226. Invert Binary Tree

자전거통학 2024. 7. 16. 23:31

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

 

주어진 binary tree를 그림과 같이 역전시켜라.

 

쉬워 보이지만, 접근을 잘 해야 하는 문제. 

 

제일 하단 leaf 노드부터 뒤집으면 그 위로 차례로 뒤집으면 해결됨을 파악해야 한다. 

각 depth 별로 노드를 얻어 하려고 하면 복잡해 지고, 

DFS방식으로 접근해서 하단부터 값을 얻고 위로 올라오면서 적용한다. 

 

코드 

TreeNode* invertTree(TreeNode* node)
{
    if (node == nullptr)
        return nullptr;

    auto left = invertTree(node->left);
    auto right = invertTree(node->right);

    node->left = right;
    node->right = left;
    return node;
}

 

 

결과