using
System;
using
System.Collections.Generic;
class
GFG
{
public
class
Node
{
public
int
data;
public
Node left;
public
Node right;
};
static
Node newNode(
int
data)
{
Node temp =
new
Node();
temp.data = data;
temp.left = temp.right =
null
;
return
temp;
}
static
List<
int
> eulerTree(Node root, List<
int
> Euler)
{
Euler.Add(root.data);
if
(root.left !=
null
)
{
Euler = eulerTree(root.left, Euler);
Euler.Add(root.data);
}
if
(root.right !=
null
)
{
Euler = eulerTree(root.right, Euler);
Euler.Add(root.data);
}
return
Euler;
}
static
void
printEulerTour(Node root)
{
List<
int
> Euler =
new
List<
int
>();
Euler = eulerTree(root, Euler);
for
(
int
i = 0; i < Euler.Count; i++)
Console.Write(Euler[i] +
" "
);
}
public
static
void
Main(String[] args)
{
Node root = newNode(1);
root.left = newNode(2);
root.right = newNode(3);
root.left.left = newNode(4);
root.left.right = newNode(5);
root.right.left = newNode(6);
root.right.right = newNode(7);
root.right.left.right = newNode(8);
printEulerTour(root);
}
}