Tuesday, 24 May 2022

Tree: Level Order Traversal solved in c++

 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  and print the values in a single line separated by a space.

For example:

     1
      \
       2
        \
         5
        /  \
       3    6
        \
         4  

For the above tree, the level order traversal is .

Input Format

You are given a function,

void levelOrder(Node * root) {

}

Constraints

 Nodes in the tree  

Output Format

Print the values in a single line separated by a space.

Sample Input

     1
      \
       2
        \
         5
        /  \
       3    6
        \
         4  

Sample Output

1 2 5 3 6 4

Explanation

We need to print the nodes level by level. We process each level from left to right.
Level Order Traversal: .


Solution :


/*

class Node {

    public:

        int data;

        Node *left;

        Node *right;

        Node(int d) {

            data = d;

            left = NULL;

            right = NULL;

        }

};

*/


  int height(Node *root){

      if(root==NULL)

      return 0;

      

      return 1+max(height(root->left),height(root->right));

  }


    void levelOrder(Node * root) {

       int h = height(root);

       for(int d=1;d<=h;d++)

         printLevelOrder(root,d);

         

    }

    

    void printLevelOrder(Node* root,int l){

        if(root==NULL)

         return;

         

            if(l==1)

             cout<<root->data<<" ";

            else{

                printLevelOrder(root->left,l-1);

                printLevelOrder(root->right,l-1);

            }

             

         

    }



No comments:

Post a Comment