Invert Binary Tree

Understand and solve the interview question "Invert Binary Tree".

Description

In this lesson, your task is to invert a given a binary tree, T.

Let’s look at an example below:

Coding exercise

index.js
TreeNode.js
import {TreeNode} from './TreeNode.js'
function invertTree(root){
}
Invert binary tree

Solution

We can solve this problem using depth-first search (DFS).

The inverse of an empty tree is the empty tree. To invert tree T with root and subtrees left and right, we keep root the same and invert the right and left subtrees.

Let’s review the implementation below:

index.js
TreeNode.js
function invertTree(root){
if (root == null)
return root
var right = invertTree(root.right)
var left = invertTree(root.left)
root.left = right
root.right = left
return root
}
// Driver Code
var root = new TreeNode(1)
root.left = new TreeNode(2)
root.right = new TreeNode(3)
root.left.left = new TreeNode(4)
root.left.right = new TreeNode(5)
root.right.left = new TreeNode(6)
root.right.right = new TreeNode(7)
printTree(invertTree(root))
Invert binary tree

Complexity measures

Time Complexity Space Complexity
...