226. Invert Binary Tree - cocoder39/coco39_LC GitHub Wiki

226. Invert Binary Tree

dfs

O(n) time and O(height) space

TreeNode* invertTree(TreeNode* root) {
        if(! root) {
            return root;
        }
        
        TreeNode* left = invertTree(root->right);
        TreeNode* right = invertTree(root->left);
        root->left = left;
        root->right = right;
        return root;
    }

bfs

O(n) time and O(width) space

TreeNode* invertTree(TreeNode* root) {
        if (! root) {
            return nullptr;
        }
        
        queue<TreeNode*> q;
        q.push(root);
        while (! q.empty()) {
            TreeNode* node = q.front();
            q.pop();
            if (node->left) {
                q.push(node->left);
            }
            if (node->right) {
                q.push(node->right);
            }
            
            swap(node->left, node->right);
        }
        return root;
    }
⚠️ **GitHub.com Fallback** ⚠️