Tree: Preorder Traversal


Problem Statement :


Complete the preorder function in the editor below, which has 1 parameter: a pointer to the root of a binary tree. It must print the values in the tree's preorder traversal as a single line of space-separated values.

Input Format

Our test code passes the root node of a binary tree to the preOrder function.

Constraints

1 <=  Nodes in the tree  <= 500

Output Format

Print the tree's preorder traversal as a single line of space-separated values.

Sample Input

     1
      \
       2
        \
         5
        /  \
       3    6
        \
         4  
Sample Output

1 2 5 3 4 6



Solution :



title-img


                            Solution in C :

In Java :


/* you only have to complete the function given below.  
Node is defined as  

class Node {
    int data;
    Node left;
    Node right;
}

*/

void Preorder(Node root) {
    if (root == null) { return; }
    System.out.print(root.data + " ");
    Preorder(root.left);
    Preorder(root.right);
}




In C ++ :




void Preorder(node *root) {
    if (!root) return;
    printf("%d ", root->data);
    Preorder(root->left);
    Preorder(root->right);
}




In C :



/* you only have to complete the function given below.  
node is defined as  

struct node {
    
    int data;
    struct node *left;
    struct node *right;
  
};

*/
void preOrder( struct node *root) {
    if(root == NULL){
        return;
    }
    else{
    printf("%d ",root->data);
    preOrder(root->left);
    preOrder(root->right);
    }
}




In python3 :



class node:
    def __init__(self, val):
        self.val = val
        self.left = None
        self.right = None

    def addleft(self, val):
        self.left = node(val)

    def addright(self, val):
        self.right = node(val)
"""
def parseInput(vals, root):
    if vals:
        val = vals.pop()
        if val:
            root.addleft(val)
            parseInput(vals, root.left)
        if vals:
            val = vals.pop()
            if val:
                root.addright(val)
                parseInput(vals, root.right)
"""
n = int(input())
vals = list(map(int, input().split()))
#vals = [6, 5, 3, 0, 0, 2, 0, 0, 4, 1]
vals.reverse()
root = node(vals.pop())

#parseInput(vals, root)


if n == 6:
    root.addleft(vals.pop())
    root.addright(vals.pop())
    root.left.addleft(vals.pop())
    root.left.addright(vals.pop())
    root.right.addleft(vals.pop())
if n == 15:
    root.addleft(vals.pop())
    root.addright(vals.pop())
    root.left.addleft(vals.pop())
    root.left.addright(vals.pop())
    root.right.addleft(vals.pop())
    root.right.addright(vals.pop())
    root.left.left.addleft(vals.pop())
    root.left.left.addright(vals.pop())
    root.left.right.addleft(vals.pop())
    root.left.right.addright(vals.pop())
    root.right.left.addleft(vals.pop())
    root.right.left.addright(vals.pop())
    root.right.right.addleft(vals.pop())
    root.right.right.addright(vals.pop())

#user code here:

"""
just implement the preorder method below.

root is of type node, which is defined as:

class node:
    def __init__(self, val):
        self.val = val
        self.left = None
        self.right = None
"""


def preorder(root):
    if root:
        print(root.val,end = ' ')
        preorder(root.left)
        preorder(root.right)

#end user code

preorder(root)
                        








View More Similar Problems

Tree: Preorder Traversal

Complete the preorder function in the editor below, which has 1 parameter: a pointer to the root of a binary tree. It must print the values in the tree's preorder traversal as a single line of space-separated values. Input Format Our test code passes the root node of a binary tree to the preOrder function. Constraints 1 <= Nodes in the tree <= 500 Output Format Print the tree's

View Solution →

Tree: Postorder Traversal

Complete the postorder function in the editor below. It received 1 parameter: a pointer to the root of a binary tree. It must print the values in the tree's postorder traversal as a single line of space-separated values. Input Format Our test code passes the root node of a binary tree to the postorder function. Constraints 1 <= Nodes in the tree <= 500 Output Format Print the

View Solution →

Tree: Inorder Traversal

In this challenge, you are required to implement inorder traversal of a tree. Complete the inorder function in your editor below, which has 1 parameter: a pointer to the root of a binary tree. It must print the values in the tree's inorder traversal as a single line of space-separated values. Input Format Our hidden tester code passes the root node of a binary tree to your $inOrder* func

View Solution →

Tree: Height of a Binary Tree

The height of a binary tree is the number of edges between the tree's root and its furthest leaf. For example, the following binary tree is of height : image Function Description Complete the getHeight or height function in the editor. It must return the height of a binary tree as an integer. getHeight or height has the following parameter(s): root: a reference to the root of a binary

View Solution →

Tree : Top View

Given a pointer to the root of a binary tree, print the top view of the binary tree. The tree as seen from the top the nodes, is called the top view of the tree. For example : 1 \ 2 \ 5 / \ 3 6 \ 4 Top View : 1 -> 2 -> 5 -> 6 Complete the function topView and print the resulting values on a single line separated by space.

View Solution →

Tree: Level Order Traversal

Given a pointer to the root of a binary tree, you need to print the level order traversal of this tree. In level-order traversal, nodes are visited level by level from left to right. Complete the function levelOrder and print the values in a single line separated by a space. For example: 1 \ 2 \ 5 / \ 3 6 \ 4 F

View Solution →