Invert Binary Tree
Invert a binary tree.
Example:
Input:
4 / \ 2 7 / \ / \ 1 3 6 9
Output:
4 / \ 7 2 / \ / \ 9 6 3 1
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode() {}
* TreeNode(int val) { this.val = val; }
* TreeNode(int val, TreeNode left, TreeNode right) {
* this.val = val;
* this.left = left;
* this.right = right;
* }
* }
*/
class Solution {
public TreeNode invertTree(TreeNode root) {
if (root == null) {
return null;
}
TreeNode right = invertTree(root.right);
TreeNode left = invertTree(root.left);
root.left = right;
root.right = left;
return root;
}
}
Here, we are going to solve it recursively. The inverse of an empty tree is the empty tree. The inverse of a tree with root , and subtrees and , is a tree with root , whose right subtree is the inverse of , and whose left subtree is the inverse of .
1) We are doing recursion in right side of tree and store it in right variable.
2) Then, We are doing recursion in left side of tree and store it in left variable.
3) Store right variable to root.left
4) Store left variable to root.right.
5) Return root. Now the tree is inverted.
Related Posts:
Click here for May month challenges with solution and explanation
Click here for April month challenges with solution and explanation
Click here for May month challenges with solution and explanation
Click here for April month challenges with solution and explanation
Subscribe us to receive updates instantly.
Please let us know about your views in comment section.
Comments
Post a Comment