import
java.util.*;
class
GFG
{
public
static
class
Node {
int
data;
Node left, right;
}
public
static
Node newNode(
int
key)
{
Node node =
new
Node();
node.data = key;
node.left = node.right =
null
;
return
node;
}
public
static
void
convertTree(Node root)
{
if
(root ==
null
)
return
;
convertTree(root.left);
convertTree(root.right);
if
(root.left !=
null
&& root.right !=
null
)
root.data = root.left.data ^ root.right.data;
}
public
static
void
printInorder(Node root)
{
if
(root ==
null
)
return
;
printInorder(root.left);
System.out.print(root.data +
" "
);
printInorder(root.right);
}
public
static
void
main(String[] args)
{
Node root = newNode(
1
);
root.left = newNode(
1
);
root.right = newNode(
0
);
root.left.left = newNode(
0
);
root.left.right = newNode(
1
);
root.right.left = newNode(
0
);
root.right.right = newNode(
1
);
System.out.print(
"Before conversion: "
);
printInorder(root);
convertTree(root);
System.out.print(
"\nAfter conversion: "
);
printInorder(root);
}
}