using
System;
using
System.Collections.Generic;
public
class
Node {
public
int
data;
public
Node left =
null
;
public
Node right =
null
;
public
Node(
int
data)
{
this
.data = data;
this
.left =
this
.right =
null
;
}
}
class
MainClass {
static
Node newnode(
int
data) {
return
new
Node(data); }
static
int
OddEvenDifference(Node root)
{
int
oddSum = 0;
int
evenSum = 0;
Queue<Node> q =
new
Queue<Node>();
q.Enqueue(root);
while
(q.Count > 0) {
Node front_node = q.Peek();
q.Dequeue();
if
(front_node.data % 2 == 0)
evenSum += front_node.data;
else
oddSum += front_node.data;
if
(front_node.left !=
null
)
q.Enqueue(front_node.left);
if
(front_node.right !=
null
)
q.Enqueue(front_node.right);
}
return
Math.Abs(oddSum - evenSum);
}
static
void
Main(
string
[] args)
{
Node root = newnode(5);
root.left = newnode(2);
root.right = newnode(6);
root.left.left = newnode(1);
root.left.right = newnode(4);
root.left.right.left = newnode(3);
root.right.right = newnode(8);
root.right.right.right = newnode(9);
root.right.right.left = newnode(7);
Console.WriteLine(OddEvenDifference(root));
}
}