# Formula to Find a Level of the Node in a Binary Tree

The binary tree is a fundamental data structure in the DSA field. Its numerous applications include data organization, searching, and sorting algorithms. With the concept of node levels, finding an efficient and applicable formula to calculate the node level has become very easy.

The level node in a binary tree can be majorly defined as the level node that is basically located at some depth or down the lane. It is basically present at a specific level and is used for the optimization of the tree. Each level that is present in the binary tree contains a level where the tree is present at an equal distance from the root node from all the nodes.

Some advantages of the level node are stated below: -

1. When we locate a level node, we are basically visualizing the aid for it. We can easily use this information for determining and performing the visual representation and building the diagrams for the same.
2. It is also very useful in subset processing; suppose we have to isolate a particular node, then we have to look for the subsets, and we can easily focus on them and process them too.
3. In case we need to perform a certain level of operations and techniques at a certain level of the tree, then it can easily optimize such operations in the tree.

### Implementation

Output

A step-by-step explanation of the code

1. The code begins by declaring the necessary header files.
2. The code defines a structure for the binary tree with the struct keyword, and it has the following members: a data value and a pointer to the left and right child.
3. We will now create a getLevelUtil function which turns out to be a helper function. It has three parameters: node, data, and level.
4. The 'getLevel' function has two parameters node and data.
5. Now, we declare a 'newNode' function that helps us create a new node in the binary tree, and it usually takes a single parameter, data, and sets the left and right pointers to NILL.
6. In the program's primary function, the pointer 'root' is created to store the root of the binary tree.
7. The binary tree is built by assigning positions in the tree.
8. We create a for loop, which iterates over the values from 1 to 5. For each one of these values, the 'get level' function is called to find the level in the binary tree. If the value is non-zero, the value will be present in the tree. Otherwise, a message indicating the value is not present in the tree is printed.
9. 'getchar()' is used to wait for a character input before the program ends or terminates.
10. The program ends by returning the value 0 from the main function indicating the execution of the program.

### Example 2)

Output

A step-by-step explanation of the code

1. The code begins by declaring the necessary header files. The code begins by defining two classes, 'Node' and 'Binary tree'. The node contains three members: a data value and a pointer to the left and right child, whereas the binary tree comprises the tree's root.
2. The binary tree creates a getLevelUtil function which turns out to be a helper function. It has three parameters: node, data, and level.
3. The 'getLevel' function has two parameters node and data.
4. Now, we declare a 'newNode' function that helps us create a new node in the binary tree, and it usually takes a single parameter, data, and sets the left and right pointers to NILL.
5. In the program's primary function, the pointer 'root' is created to store the root of the binary tree.
6. The binary tree is built by assigning positions in the tree.
7. We create a for loop, which iterates over the values from 1 to 5. For each one of these values, the 'getLevel' function is called to find the level in the binary tree. In case the value is non-zero, the value will be present in the tree. Otherwise, a message indicating the value is not present in the tree is printed.
8. 'getchar()' is used to wait for a character input before the program ends or terminates.
9. The program ends by returning the value 0 from the main function indicating the execution of the program.

### Example 3)

Output

A step-by-step explanation of the code

1. The code defines a class named 'newNode', which represents a node in the binary tree, a pointer to the left and right child, and a data value.
2. We will now create a getLevelUtil function which turns out to be a helper function. It has three parameters: node, data, and level.
3. The 'getLevel' function has two parameters node and data.
4. Now, we declare a 'newNode' function that helps us create a new node in the binary tree, and it usually takes a single parameter, data, and sets the left and right pointers to NILL.
5. In the program's primary function, the pointer 'root' is created to store the root of the binary tree.
6. The binary tree is built by assigning positions in the tree.
7. We create a for loop, which iterates over the values from 1 to 5. For each one of these values, the 'getLevel' function is called to find the level in the binary tree. If the value is non-zero, the value will be present in the tree. Otherwise, a message indicating the value is not present in the tree is printed.
8. 'getchar()' is used to wait for a character input before the program ends or terminates.
9. The program ends by returning the value 0 from the primary function indicating the execution of the program.