Invert Binary Tree
Explore how to invert a binary tree by swapping each node's left and right children, creating a mirrored tree using depth-first search techniques. Understand the problem constraints and practice implementing your solution in Go to solidify your comprehension and coding skills.
We'll cover the following...
Statement
Given the root node of a binary tree, transform the tree by swapping each node’s left and right subtrees, thus creating a mirror image of the original tree. Return the root of the transformed tree.
Constraints:
- Number of nodes in the tree
-
Node.value
Examples
Understand the problem
Let’s take a moment to make sure you’ve correctly understood the problem. The quiz below helps you check if you’re solving the correct problem:
Invert Binary Tree
What is the correct mirrored tree for the given tree?
5
/ \
6 7
/ \
8 9
5
/ \
6 7
/ \
8 9
5
/ \
7 6
/ \
9 8
5
/ \
6 7
/ \
9 8
5
/ \
7 6
/ \
9 8
Figure it out!
We have a game for you to play. Rearrange the logical building blocks to develop a clearer understanding of how to solve this problem.
Try it yourself
Implement your solution in main.go in the following coding playground.
// Definition of a binary tree node// type TreeNode[T any] struct {// Data T// Left *TreeNode[T]// Right *TreeNode[T]// }package mainimport (. "golang-test-code/ds_v1/BinaryTree") // TreeNode[T]func mirrorBinaryTree(root *TreeNode[int]) *TreeNode[int] {// Replace this placeholder return statement with your codereturn root}