import
java.util.*;
class
Node {
int
data;
Node left, right;
Node(
int
value)
{
data = value;
left = right =
null
;
}
}
public
class
Main {
static
void
printDiffUtil(Node root,
int
[] evenLeafSum,
int
[] oddLeafSum,
int
level)
{
if
(root ==
null
)
return
;
if
(root.left ==
null
&& root.right ==
null
) {
if
(level ==
0
)
evenLeafSum[
0
] += root.data;
else
oddLeafSum[
0
] += root.data;
}
if
(level ==
0
) {
printDiffUtil(root.left, evenLeafSum,
oddLeafSum,
1
);
printDiffUtil(root.right, evenLeafSum,
oddLeafSum,
1
);
}
else
{
printDiffUtil(root.left, evenLeafSum,
oddLeafSum,
0
);
printDiffUtil(root.right, evenLeafSum,
oddLeafSum,
0
);
}
}
static
void
printDiff(Node root)
{
int
[] evenLeafSum = {
0
};
int
[] oddLeafSum = {
0
};
printDiffUtil(root, evenLeafSum, oddLeafSum,
1
);
System.out.println(oddLeafSum[
0
] - evenLeafSum[
0
]);
}
public
static
void
main(String args[])
{
Node root =
new
Node(
1
);
root.left =
new
Node(
2
);
root.right =
new
Node(
3
);
root.left.left =
new
Node(
4
);
root.left.right =
new
Node(
5
);
root.right.left =
new
Node(
6
);
root.right.right =
new
Node(
7
);
root.left.left.right =
new
Node(
8
);
root.left.right.right =
new
Node(
9
);
root.right.right.left =
new
Node(
10
);
root.right.right.right =
new
Node(
11
);
root.left.left.right.right =
new
Node(
12
);
printDiff(root);
}
}