Implement a PreOrder traversal of a binary tree. In this traversal, the root node is visited first, then the left subtree, and finally the right subtree.
The tree is defined as follows:
// Java
class TreeNode
{
public:
int val;
TreeNode left;
TreeNode right;
TreeNode(int x) {
val = x;
left = NULL;
right = NULL;
};// C++
class TreeNode
{
public:
int val;
TreeNode *left;
TreeNode *right;
TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};Implement the function PreOrder that prints, in one line, the values of the tree nodes in the order of the PreOrder traversal. Separate the values with a single space.
// Java
void PreOrder(TreeNode tree)// C++
void PreOrder(TreeNode *tree)
During the PreOrder traversal, the values will be printed in the following order: 4 2 1 3 10 9 16.