For this Question: Given a binary tree containing with N nodes and an integer X. Your task is to complete the function countSubtreesWithSumX() that returns the count of the number of subtress having total node’s data sum equal to a value X. 
Example: A tree given below<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 <b>countSubtreesWithSumX()</b> that takes "root" node and the integer x 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>Return the number of subtrees with sum X. The driver code will take care of printing it.Sample Input:
1
3 5
1 2 3


Sum=5
Tree:-
      1
     /  \
   2     3

Sample Output:
0

Explanation:
No subtree has a sum equal to 5.

Sample Input:-
1
5 5
2 1 3 4 5

Sum=5
Tree:-
        2
      /   \
    1      3
   /  \    
4       5

Sample Output:-
1, I have written this Solution Code:  static int c = 0;
static int countSubtreesWithSumXUtil(Node root,int x)
    {
        // if tree is empty 
    	if (root==null)return 0;
    	
    	// sum of nodes in the left subtree  
    	int ls = countSubtreesWithSumXUtil(root.left,x);
    	
    	// sum of nodes in the right subtree  
    	int rs = countSubtreesWithSumXUtil(root.right, x);
    	
    	
    	int sum = ls + rs + root.data;
    	
    	// if tree's nodes sum == x 
    	if (sum == x)c++;
    	return sum;
    }

   static int countSubtreesWithSumX(Node root, int x)
    {
       c = 0;
        // if tree is empty 
    	if (root==null)return 0;
    	
    	// sum of nodes in the left subtree  
    	int ls = countSubtreesWithSumXUtil(root.left, x);
    	
    	// sum of nodes in the right subtree  
    	int rs = countSubtreesWithSumXUtil(root.right, x);
    	
    	// check if above sum is equal to x
    	if ((ls + rs + root.data) == x)c++;
    	return c;
    }, In this Programming Language: Java, Now tell me if this Code is compilable or not?