Algorithm

Solving the Height of a Binary Tree Puzzle

You get an array like [1, 2, 3, 4, -1, -1, -1]. It represents a binary tree. -1 means null. Find the height.

6 May 2024

Solving the Height of a Binary Tree Puzzle

You get an array like [1, 2, 3, 4, -1, -1, -1]. It represents a binary tree. -1 means null. Find the height.

The height of a tree is the number of edges on the longest path from root to leaf. A single node has height 0. An empty tree has height -1.

The intuition

First, build the tree from the array. The array uses level-order indexing: for a node at index i, its left child is at 2i + 1 and right child at 2i + 2. Then find the height recursively — it's the max height of the two subtrees, plus one.

Javascript
class Node {
    constructor(value) {
        this.value = value;
        this.left = null;
        this.right = null;
    }
}

function buildTree(arr, index = 0) {
    if (index >= arr.length || arr[index] === -1) {
        return null;
    }

    const node = new Node(arr[index]);
    node.left = buildTree(arr, 2 * index + 1);
    node.right = buildTree(arr, 2 * index + 2);
    return node;
}

function getHeight(node) {
    if (node === null) return 0;
    return 1 + Math.max(getHeight(node.left), getHeight(node.right));
}

const tree = buildTree([1, 2, 3, 4, -1, -1, -1]);
console.log(getHeight(tree)); // 3

Complexity

  • Time: O(n) — visit every node once during both build and height calculation.
  • Space: O(n) — the tree itself, plus O(h) recursion stack where h is the height.

A shortcut you might miss

You don't actually need to build the tree. The height of a complete binary tree represented as an array is Math.floor(Math.log2(n)) + 1 where n is the number of non-null elements. But that only works for complete trees. The recursive approach handles any shape.

Go further
Live cohort on Maven

AI Transformation for Organisational Leaders

For directors, heads of function and founders: eight live evening sessions with Ehsan Gazar and Anoosh Zeighami, ending with a one-page 2027 AI plan for your organisation, built on a real workflow and ready for your leadership team.

$1,495, or $1,045 with code EARLYBIRD until 23 Oct.

View the live cohort

Keep reading