If you want to practice data structure and algorithm programs, you can go through data structure and algorithm interview questions.

This is 11th part of java binary tree tutorial.

## Java Binary tree tutorial:

- Binary tree in java
- Binary tree preorder traversal
- Binary tree postorder traversal
- Binary tree inorder traversal
- Binary tree level order traversal
- Binary tree spiral order traversal
- Binary tree reverse level order traversal
- Binary tree boundary traversal
- Print leaf nodes of binary tree
- Count leaf nodes in binary tree
- get maximum element in binary tree
- Print all paths from root to leaf in binary tree
- Print vertical sum of binary tree in java
- Get level of node in binary tree in java
- Lowest common ancestor(LCA) in binary tree in java

### Algorithm :

- If node is null then return 0
- If node’s data is equal to key, then return level.
- Recursively search key in left subtree
- If not found, then search in right subtree

**Code for recursion will be:**

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
// Recursive Solution //To get level of node in a binary tree public static int getLevelOfNode(TreeNode root,int key,int level) { if(root==null) return 0; if(root.data==key) return level; int result=getLevelOfNode(root.left,key,level+1) ; if(result!=0) { // If found in left subtree , return return result; } result= getLevelOfNode(root.right,key,level+1); return result; } |

#### Lets create java program to get level of node in binary tree:

Lets say, your binary tree is this:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
package org.arpit.java2blog.binarytree; public class BinaryTreeGetLevelNode { public static class TreeNode { int data; TreeNode left; TreeNode right; TreeNode(int data) { this.data=data; } } // Recursive Solution //To get level of node in a binary tree public static int getLevelOfNode(TreeNode root,int key,int level) { if(root==null) return 0; if(root.data==key) return level; int result=getLevelOfNode(root.left,key,level+1) ; if(result!=0) { // If found in left subtree , return return result; } result= getLevelOfNode(root.right,key,level+1); return result; } public static void main(String[] args) { // Creating a binary tree TreeNode rootNode=createBinaryTree(); System.out.println("Node data: 70,Level :"+getLevelOfNode(rootNode, 70, 1)); System.out.println("Node data: 100,Level :"+getLevelOfNode(rootNode, 100, 1)); System.out.println("Node data: 60,Level :"+getLevelOfNode(rootNode, 60, 1)); System.out.println("Node data: 40,Level :"+getLevelOfNode(rootNode, 40, 1)); } public static TreeNode createBinaryTree() { TreeNode rootNode =new TreeNode(40); TreeNode node20=new TreeNode(20); TreeNode node10=new TreeNode(10); TreeNode node30=new TreeNode(30); TreeNode node60=new TreeNode(60); TreeNode node50=new TreeNode(50); TreeNode node70=new TreeNode(70); rootNode.left=node20; rootNode.right=node60; node20.left=node10; node20.right=node30; node60.left=node50; node60.right=node70; return rootNode; } } |

1 2 3 4 5 6 |
Node data: 70,Level :3 Node data: 100,Level :0 Node data: 60,Level :2 Node data: 40,Level :1 |

## Java Binary tree tutorial:

- Binary tree in java
- Binary tree preorder traversal
- Binary tree postorder traversal
- Binary tree inorder traversal
- Binary tree level order traversal
- Binary tree spiral order traversal
- Binary tree reverse level order traversal
- Binary tree boundary traversal
- Print leaf nodes of binary tree
- Count leaf nodes in binary tree
- get maximum element in binary tree
- Print all paths from root to leaf in binary tree
- Print vertical sum of binary tree in java
- Get level of node in binary tree in java
- Lowest common ancestor(LCA) in binary tree in java

Hi,

Following your blog and its pretty good and clear. Thanks for building this up.