Bird
Raised Fist0
DSA Javaprogramming~5 mins

Mirror a Binary Tree in DSA Java - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does it mean to mirror a binary tree?
Mirroring a binary tree means swapping the left and right children of every node in the tree, creating a mirror image of the original tree.
Click to reveal answer
intermediate
Which traversal method is commonly used to mirror a binary tree?
A post-order traversal is commonly used because it processes children before the parent, allowing safe swapping of left and right subtrees.
Click to reveal answer
beginner
Java method signature to mirror a binary tree node named 'root'?
public void mirrorTree(TreeNode root) { ... }
Click to reveal answer
beginner
What is the base case when recursively mirroring a binary tree?
The base case is when the current node is null, meaning there is no subtree to mirror, so the function returns immediately.
Click to reveal answer
beginner
After mirroring, what happens to the left and right subtrees of each node?
The left subtree becomes the right subtree and the right subtree becomes the left subtree, effectively swapping their positions.
Click to reveal answer
What is the first step in mirroring a binary tree recursively?
ACheck if the current node is null
BSwap the left and right children of the current node
CRecursively mirror the right subtree
DRecursively mirror the left subtree
Which of these best describes the effect of mirroring a binary tree?
ASwaps left and right children of all nodes
BDeletes all leaf nodes
CReverses the order of nodes in each level
DDuplicates the tree
In Java, what data structure is typically used to represent a binary tree node?
AArray
BTreeNode class with left and right references
CHashMap
DLinkedList
What traversal order is best suited for mirroring a binary tree?
APre-order
BIn-order
CPost-order
DLevel-order
What happens if you try to mirror a null node?
ASwaps null with itself
BThrows an error
CCreates a new node
DReturns immediately without changes
Explain step-by-step how to mirror a binary tree using recursion.
Think about what happens at each node and how recursion helps.
You got /4 concepts.
    Describe the changes in the tree structure after mirroring a binary tree.
    Imagine flipping the tree around its center.
    You got /3 concepts.

      Practice

      (1/5)
      1. What does it mean to mirror a binary tree?
      easy
      A. Remove all leaf nodes from the tree
      B. Swap the left and right children of every node in the tree
      C. Convert the tree into a linked list
      D. Sort the nodes in ascending order

      Solution

      1. Step 1: Understand the mirror operation

        Mirroring a binary tree means swapping the left and right children of every node.
      2. Step 2: Apply the definition to the tree

        By swapping children at every node, the tree becomes a mirror image of the original.
      3. Final Answer:

        Swap the left and right children of every node in the tree -> Option B
      4. Quick Check:

        Mirror = Swap children [OK]
      Hint: Mirror means swap left and right children at all nodes [OK]
      Common Mistakes:
      • Thinking mirror means deleting nodes
      • Confusing mirror with sorting
      • Assuming mirror flattens the tree
      2. Which of the following Java method signatures correctly represents a function to mirror a binary tree node?
      easy
      A. public void mirrorTree(Node root)
      B. public int mirrorTree(Node root)
      C. void mirrorTree(Node root) throws Exception
      D. public Node mirrorTree()

      Solution

      1. Step 1: Identify correct return type

        Mirroring modifies the tree in place, so void return type is appropriate.
      2. Step 2: Check method parameters

        The method should accept the root node to start mirroring from.
      3. Final Answer:

        public void mirrorTree(Node root) -> Option A
      4. Quick Check:

        Void return + root parameter = correct signature [OK]
      Hint: Mirror modifies tree in place, so use void with root parameter [OK]
      Common Mistakes:
      • Using return type int instead of void
      • Missing root parameter
      • Adding unnecessary exceptions
      3. Given the following binary tree and the mirror function below, what will be the preorder traversal output after mirroring?
          1
         / \
        2   3
       /     \
      4       5
      
      void mirrorTree(Node root) {
        if (root == null) return;
        Node temp = root.left;
        root.left = root.right;
        root.right = temp;
        mirrorTree(root.left);
        mirrorTree(root.right);
      }
      
      medium
      A. [1, 3, 5, 2, 4]
      B. [1, 2, 4, 3, 5]
      C. [1, 3, 2, 5, 4]
      D. [1, 5, 3, 4, 2]

      Solution

      1. Step 1: Understand the mirror function

        The function swaps left and right children at every node recursively.
      2. Step 2: Apply mirror to the tree

        Original tree preorder: 1,2,4,3,5. After mirror, left and right children swap: - Root 1: left=3, right=2 - Node 3: left=5, right=null - Node 2: left=null, right=4
      3. Step 3: Preorder traversal after mirror

        Visit root, then left subtree, then right subtree: 1, 3, 5, 2, 4
      4. Final Answer:

        [1, 3, 5, 2, 4] -> Option A
      5. Quick Check:

        Mirror swaps children; preorder = [1,3,5,2,4] [OK]
      Hint: Mirror swaps children; preorder visits root-left-right [OK]
      Common Mistakes:
      • Not swapping children correctly
      • Confusing preorder with inorder
      • Missing recursive calls
      4. The following code attempts to mirror a binary tree but causes a NullPointerException. What is the error?
      public void mirrorTree(Node root) {
        Node temp = root.left;
        root.left = root.right;
        root.right = temp;
        mirrorTree(root.left);
        mirrorTree(root.right);
      }
      medium
      A. Swapping left and right children incorrectly
      B. Recursive calls should be after swapping
      C. Missing null check before accessing root.left
      D. Method should return a Node instead of void

      Solution

      1. Step 1: Identify cause of NullPointerException

        The code accesses root.left without checking if root is null.
      2. Step 2: Fix by adding null check

        Adding "if (root == null) return;" at the start prevents errors when root is null.
      3. Final Answer:

        Missing null check before accessing root.left -> Option C
      4. Quick Check:

        NullPointerException = missing null check [OK]
      Hint: Always check if node is null before accessing children [OK]
      Common Mistakes:
      • Ignoring null checks
      • Thinking swap order causes error
      • Changing return type unnecessarily
      5. You have a binary tree where some nodes have only one child. After mirroring the tree using the standard mirror function, which of the following statements is true about the structure of the mirrored tree?
      hard
      A. Leaf nodes become internal nodes after mirroring
      B. Nodes with one child will have two children after mirroring
      C. The tree height will always increase by 1
      D. Nodes with only left child will have only right child after mirroring

      Solution

      1. Step 1: Understand mirroring effect on children

        Mirroring swaps left and right children at every node.
      2. Step 2: Analyze nodes with one child

        If a node has only a left child, after mirroring it will have only a right child (the left child moves to right).
      3. Step 3: Check other options

        Tree height does not necessarily increase; leaf nodes remain leaves; nodes do not gain extra children.
      4. Final Answer:

        Nodes with only left child will have only right child after mirroring -> Option D
      5. Quick Check:

        Mirror swaps children, so left-only becomes right-only [OK]
      Hint: Mirror swaps children, so single left child becomes single right child [OK]
      Common Mistakes:
      • Assuming tree height changes
      • Thinking nodes gain extra children
      • Confusing leaf and internal nodes
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard