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

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

Examples:

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

Input : N = 9
Output : 3
()
/    \
()     ()
/  \    /  \
()    () ()   ()
/ \
()  ()
Recommended Practice

Let the size of the heap be N and the height be h. If we take a few examples, we can notice that the value of h in a complete binary tree is floor(log2N).

Examples:

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

Implementation:

## C++

 // CPP program to find height of complete// binary tree from total nodes.#include using namespace std; int height(int N){    return floor(log2(N));} // driver nodeint main(){    int N = 2;    cout << height(N);    return 0;}

## 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

## Python 3

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

## 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

## PHP



## Javascript



Output
1

Time Complexity: O(1), Since performing constant operations.
Auxiliary Space: O(1), Since constant extra space is used.

Previous
Next