For this Question: Given a Binary Search Tree and 2 node value <b>n1</b> and <b>n2</b>, your task is to find the <b>lowest common ancestor(LCA)</b> of the two nodes given.
It may happen that values n1 and n2 may or may be not present.

<b>Note:</b> Duplicates are not inserted in the BST.<b>User Task:</b>
This is a function problem. You don't have to take any input. You are required to complete the function LCA() that takes root node, n1, n2 as parameters and returns the node that is LCA of n1 and n2.

<b>Constraints:</b>
1 <= T <= 100
1 <= N <= 10^4
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 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.
Second line will contain the values of two nodes
<b>Note:</b> If a node has been declared Null using 'N', no information about its children will be given further in the array.
Second line will contain the values of two nodesFor each testcase, you need to return the node containing LCA of n1 and n2. The driver code will print the data. If any of the node values (n1, n2) is not present then return null driver code will print -1 for that.Sample Input
2
5 4 6 3 N N 7 N N N 8
7 8
2 1 3
1 3

Sample Output 
7
2

Explanation:
Testcase1:
The BST in above test case will look like
    5
   /  \ 
  4  6
 /      \
3        7
            \ 
             8
Here the LCA of 7 and 8 is 7., I have written this Solution Code: 
static Node LCA(Node node, int n1, int n2) {
        if (node == null) {
            return null;
        }
 
        // If both n1 and n2 are smaller than root, then LCA lies in left
        if (node.data > n1 && node.data > n2) {
            return LCA(node.left, n1, n2);
        }
 
        // If both n1 and n2 are greater than root, then LCA lies in right
        if (node.data < n1 && node.data < n2) {
            return LCA(node.right, n1, n2);
        }
 
        return node;
    }
  , In this Programming Language: Java, Now tell me if this Code is compilable or not?