Given a Binary Tree having random pointers clone the Binary Tree. The task is to complete the function cloneTree which take one argument the root of the tree to be copied and should return the root of the cloned tree.
The first line of input contains the no of test cases. Then T test cases follow. Each test case contains 2 lines the first line contains and integer N denoting the no of edges of the tree and then in the next line are N space separated queries .The query on tree are of three types
a) a b L (Represents that b is the left child of a)
b) a b R (Represents that b is the right child of a)
c) a b X (Represents a random pointer from node a to node b)
Your function should return the root of the cloned tree. The output will be 1 if the tree is successfully cloned.
1 <=T<= 30
1 <=Number of nodes<= 100
1 <=Data of a node<= 1000
Example(To be used only for expected output):
6 3 L 6 8 R 3 1 L 3 5 R 1 3 X 5 6 X
Above test case represents the below tree with 6 edges .
Note:The Input/Ouput format and Example given are used for system's internal purpose, and should be used by a user for Expected Output only. As it is a function problem, hence a user should not read any input from stdin/console. The task is to complete the function specified, and not to write the full code.