Height of a complete binary tree (or Heap) with N nodes

Consider a Binary Heap of size N. We need to find height of it.

**Examples :**

Input : N = 6 Output : 2 () / \ () () / \ / () () () Input : N = 9 Output : () / \ () () / \ / \ () () () () / \ () ()

Let the size of heap be **N** and height be **h**

If we take few examples, we can notice that the value of h in a complete binary tree is ceil(log_{2}(N+1)) – 1.

Examples :

N h --------- 1 0 2 1 3 1 4 2 5 2 ..... .....

## C++

`// CPP program to find height of complete ` `// binary tree from total nodes. ` `#include <bits/stdc++.h> ` `using` `namespace` `std; ` ` ` `int` `height(` `int` `N) ` `{ ` ` ` `return` `ceil` `(log2(N + 1)) - 1; ` `} ` ` ` `// driver node ` `int` `main() ` `{ ` ` ` `int` `N = 6; ` ` ` `cout << height(N); ` ` ` `return` `0; ` `} ` |

*chevron_right*

*filter_none*

## Java

`// Java program to find height ` `// of complete binary tree ` `// from total nodes. ` `import` `java.lang.*; ` ` ` `class` `GFG { ` ` ` ` ` `// Function to calculate height ` ` ` `static` `int` `height(` `int` `N) ` ` ` `{ ` ` ` `return` `(` `int` `)Math.ceil(Math.log(N + ` ` ` `1` `) / Math.log(` `2` `)) - ` `1` `; ` ` ` `} ` ` ` ` ` `// Driver Code ` ` ` `public` `static` `void` `main(String[] args) ` ` ` `{ ` ` ` `int` `N = ` `6` `; ` ` ` `System.out.println(height(N)); ` ` ` `} ` `} ` ` ` `// This code is contributed by ` `// Smitha Dinesh Semwal ` |

*chevron_right*

*filter_none*

## Python 3

`# Python 3 program to find ` `# height of complete binary ` `# tree from total nodes. ` `import` `math ` `def` `height(N): ` ` ` `return` `math.ceil(math.log2(N ` `+` `1` `)) ` `-` `1` ` ` `# driver node ` `N ` `=` `6` `print` `(height(N)) ` ` ` `# This code is contributed by ` `# Smitha Dinesh Semwal ` |

*chevron_right*

*filter_none*

## C#

`// C# program to find height ` `// of complete binary tree ` `// from total nodes. ` `using` `System; ` ` ` `class` `GFG { ` ` ` `static` `int` `height(` `int` `N) ` ` ` `{ ` ` ` `return` `(` `int` `)Math.Ceiling(Math.Log(N ` ` ` `+ 1) / Math.Log(2)) - 1; ` ` ` `} ` ` ` ` ` `// Driver node ` ` ` `public` `static` `void` `Main() ` ` ` `{ ` ` ` `int` `N = 6; ` ` ` `Console.Write(height(N)); ` ` ` `} ` `} ` ` ` `// This code is contributed by ` `// Smitha Dinesh Semwal ` |

*chevron_right*

*filter_none*

## PHP

`<?php ` `// PHP program to find height ` `// of complete binary tree ` `// from total nodes. ` ` ` `function` `height(` `$N` `) ` `{ ` ` ` `return` `ceil` `(log(` `$N` `+ 1, 2)) - 1; ` `} ` ` ` `// Driver Code ` `$N` `= 6; ` `echo` `height(` `$N` `); ` ` ` `// This code is contributed by aj_36 ` `?> ` |

*chevron_right*

*filter_none*

**Output :**

2

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the **DSA Self Paced Course** at a student-friendly price and become industry ready.