# 226 Invert Binary Tree

## Problem Statement

Given the `root` of a binary tree, invert the tree, and return its root.

Input: root = [4,2,7,1,3,6,9]
Output: [4,7,2,9,6,3,1]

## Approach

We are using a recursive approach so we have to first define a base case:
When the function gets passed a null pointer (meaning calling the function on a left or right branch of a node that has nothing there); you return the null pointer back.

Before we do our swap, we create a temp variable, swap and assign the temp to the swapped variable.

Then we make our recursive calls and in the end return the root.

## Solution

``````var invertTree = function(root) {
if (root === null) {
return null;
}

// Swap left and right subtrees
let temp = root.left;
root.left = root.right;
root.right = temp;

// Recursively invert left and right subtrees
invertTree(root.left);
invertTree(root.right);

return root;
};
``````

## Questions

#### What is the Base case?

You are getting a null pointer for either left or right branch, then return null

#### How does inverting work?

Creating a temp variable, swapping, reassigning

LC