**Objective:** Given a binary tree, find the height of it

**Input:** A Binary Tree

**Output: **Height of a binary tree

**Example: **

**Approach:**

** Recursion:**

- Get the height of left sub tree, say leftHeight
- Get the height of right sub tree, say rightHeight
- Take the Max(leftHeight, rightHeight) and add 1 for the root and return
- Call recursively.

**Time Complexity : O(n)**

**Complete Code:**

**Output:**

Height of the Tree is 7

Explanation with diagram is just amazing! Thanks!

Thanks Anuj

The height of a single-node tree is zero by definition, not one. You should check if your root has any children before adding 1 to the height.

public int treeHeight(Node root){

if(root==null)return -1;

return (1+ Math.max(treeHeight(root.left),treeHeight(root.right)));

}

This would work