The height of a Binary Tree is a number of edges between the tree's root and its furthest leaf. For example, the height of the following binary tree is 2

A tree consisting of only a single node has a height of 0

## Problem

Given a binary tree

Write an algorithm to find height or maximum depth of it

## Approach

- For every parent node in a binary tree

```
height(parenNode) = max(height(leftChild), height(rightChild)) + 1
```

- Run the above function recursively for all nodes in the given tree, starting from root node

```
import com.hellokoding.datastructure.BSTByLinkedList;
public class BinaryTreeHeight extends BSTByLinkedList {
public int height(Node node) {
if (node == null) return -1;
return Math.max(height(node.left), height(node.right)) + 1;
}
public static void main(String[] args) {
BinaryTreeHeight tree = new BinaryTreeHeight();
tree.insert(7);
tree.insert(2);
tree.insert(3);
tree.insert(1);
tree.insert(9);
tree.inTraversal(tree.root);
System.out.println(tree.height(tree.root));
}
}
```

`BSTByLinkedList`

is defined in Binary Search Tree Data Structure