"You developed an app which has over a **million** downloads, that's cute! But can you invert a binary tree "?

Question: Invert a Binary Tree.

What's meant by **"Invert Binary Tree ?**"

It means for each node, the **left-subtree** of the node becomes the **right-subtree** and **right-subtree** becomes **left-subtree**.

Let's simplify the question step by step:

Step 1 > How to traverse the tree?

Aim : Our main aim is to:

1> visite each node.

2> swap left subtree and right subtree.

3> go deep in the respective subtree and repeat.

So it makes sense to use **DFS in this case.**

Step 2> How do we swap?

1> we could simply swap the sub-trees using a temporary container.

Let's visualize this :

Let's write some code :

```
var invertTree = function(root) {
return dfs(root);
};
function dfs(root){
if(root == null) return null;
let temp = root.left;
root.left = root.right;
root.right = temp;
dfs(root.left);
dfs(root.right);
return root;
}
```

That's it !, now you know how to solve a question which is frequently asked at google!

github : https://github.com/AKHILP96/Data-Structures-and-Algorithms/blob/master/problems/invertBinaryTree.js

## Discussion (0)