For this Question: Given a binary tree, check if the tree can be folded or not. A tree can be folded if left and right subtrees of the tree are mirror images of each other. An empty tree is considered as foldable.
Consider the below trees:
(a) and (b) can be folded.
(c) and (d) cannot be folded.<b>User Task:</b>
Since this will be a functional problem. You don't have to take input. You just have to complete the function isFoldable() that takes "root" node as parameter.

<b>Constraints:</b>
1 <= T <= 100
1 <= N <= 10^3
1 <= node values <= 10^4

<b>Sum of "N" over all testcases does not exceed 10^5</b>

For <b>Custom Input:</b>
First line of input should contains the number of test cases T. For each test case, there will be two lines of input.
First line contains number of nodes N. Second line will be a string representing the tree as described below: 
The values in the string are in the order of level order traversal of the tree where, numbers denote node values, and a character “N” denotes NULL child.
<b>Note:</b> If a node has been declared Null using 'N', no information about its children will be given further in the array.Return "<b>Yes</b>" or "<b>No</b>" whether the tree is <b>Foldable</b> or notSample Input:
2
5
10 7 15 N 9 11 N
5
10 7 15 5 N 11 N

Sample Output:
Yes
No

Explanation:
Testcase 1: Given tree is
<pre>
                              10
                           /       \
                         7         15
                      /    \      /    \
                    N      9  11          N
</pre>
Hence, above tree is structure wise same so it is foldable.
Testcase 2: Given tree is 
<pre>
                                10
                             /       \
                          7          15
                       /    \       /     \
                     5      N    11          N
</pre>
Hence, above tree is not structure wise same so it is not foldable., I have written this Solution Code: static boolean isFoldable(Node node) 
	{ 
		if (node == null) 
			return true; 

		return isFoldableUtil(node.left, node.right); 
	} 

	/* A utility function that checks if trees with roots as n1 and n2 
	are mirror of each other */
static boolean isFoldableUtil(Node n1, Node n2) 
	{ 

		/* If both left and right subtrees are NULL, 
		then return true */
		if (n1 == null && n2 == null) 
			return true; 

		/* If one of the trees is NULL and other is not, 
		then return false */
		if (n1 == null || n2 == null) 
			return false; 

		/* Otherwise check if left and right subtrees are mirrors of 
		their counterparts */
		return isFoldableUtil(n1.left, n2.right) 
			&& isFoldableUtil(n1.right, n2.left); 
	}, In this Programming Language: Java, Now tell me if this Code is compilable or not?