Only Test Case 3 shows wrong answer

import java.util.*;
public class Main {

static Scanner scn = new Scanner(;

public static void main(String[] args) {
	Main m = new Main();
	BinaryTree bt1 = BinaryTree();
	BinaryTree bt2 = BinaryTree();

private class BinaryTree {
	private class Node {
		int data;
		Node left;
		Node right;

	private Node root;
	private int size;

	public BinaryTree() {
		this.root = this.takeInput(null, false);

	public Node takeInput(Node parent, boolean ilc) {

		int cdata = scn.nextInt();
		Node child = new Node(); = cdata;

		// left
		boolean hlc = scn.nextBoolean();

		if (hlc) {
			child.left = this.takeInput(child, true);

		// right
		boolean hrc = scn.nextBoolean();

		if (hrc) {
			child.right = this.takeInput(child, false);

		// return
		return child;

	public boolean structurallyIdentical(BinaryTree other) {
		return this.structurallyIdentical(this.root, other.root);

	private boolean structurallyIdentical(Node node1, Node node2) {
		// write your code here
		    if(node1==null && node2==null){
  				return true;
			if(node1==null || node2==null){
  				return false;

			return ( && structurallyIdentical(node1.left,node2.left) && structurallyIdentical(node1.right,node2.right));


This condition in return is not required, please read the problem statement again.

I hope I’ve cleared your doubt. I ask you to please rate your experience here
Your feedback is very important. It helps us improve our platform and hence provide you
the learning experience you deserve.

On the off chance, you still have some questions or not find the answers satisfactory, you may reopen
the doubt.