Bird
Raised Fist0
Data Structures Theoryknowledge~6 mins

Height and depth of trees in Data Structures Theory - Full Explanation

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Introduction
Imagine you have a family tree or an organizational chart. You want to know how far someone is from the top or how tall the whole tree is. Height and depth help us measure these distances in tree structures.
Explanation
Depth of a node
Depth tells us how far a node is from the root of the tree. We count the number of steps or edges from the root down to that node. The root itself has a depth of zero because it is the starting point.
Depth measures the distance from the root to a specific node.
Height of a node
Height tells us how far a node is from the farthest leaf below it. We count the number of steps from that node down to the deepest leaf in its subtree. A leaf node has a height of zero because it has no children.
Height measures the longest path from a node down to a leaf.
Height of the tree
The height of the whole tree is the height of the root node. It shows the longest path from the root down to any leaf in the tree. This tells us how tall or deep the entire tree is.
The tree's height is the height of its root node.
Relationship between height and depth
Depth and height measure distances in opposite directions: depth goes down from the root to a node, height goes down from a node to its leaves. Together, they help us understand the tree's shape and structure.
Depth and height are complementary ways to measure positions in a tree.
Real World Analogy

Think of a family tree where the oldest ancestor is at the top. The depth of a person is how many generations they are away from that ancestor. The height of a person is how many generations are below them until the youngest descendant.

Depth of a node → Number of generations from the oldest ancestor to a family member
Height of a node → Number of generations from a family member down to their youngest descendant
Height of the tree → Total number of generations from the oldest ancestor to the youngest descendant
Relationship between height and depth → Counting generations up from the ancestor versus down to descendants
Diagram
Diagram
        ┌───── Root (depth=0, height=3) ─────┐
        │                                  │
    ┌───┴───┐                          ┌───┴───┐
    │       │                          │       │
 Node1   Node2(depth=1, height=1)  Node3   Node4
(depth=1, height=2)                (depth=1, height=0)
    │                               
  Leaf1 (depth=2, height=0)         
This diagram shows a tree with nodes labeled by their depth and height values.
Key Facts
DepthThe number of edges from the root node to a given node.
HeightThe number of edges on the longest path from a node down to a leaf.
Root nodeThe topmost node in a tree with depth zero.
Leaf nodeA node with no children and height zero.
Tree heightThe height of the root node, representing the longest path to any leaf.
Code Example
Data Structures Theory
class Node:
    def __init__(self, value):
        self.value = value
        self.children = []

def compute_depth(node, root, depth=0):
    if node == root:
        return depth
    for child in root.children:
        d = compute_depth(node, child, depth + 1)
        if d != -1:
            return d
    return -1

def compute_height(node):
    if not node.children:
        return 0
    return 1 + max(compute_height(child) for child in node.children)

# Build a sample tree
root = Node('root')
child1 = Node('child1')
child2 = Node('child2')
leaf = Node('leaf')
root.children = [child1, child2]
child1.children = [leaf]

# Compute depth and height
print('Depth of leaf:', compute_depth(leaf, root))
print('Height of root:', compute_height(root))
OutputSuccess
Common Confusions
Thinking depth and height are the same measurement.
Thinking depth and height are the same measurement. Depth measures distance from the root down to a node, while height measures distance from a node down to its farthest leaf; they are opposite directions.
Assuming leaf nodes have height greater than zero.
Assuming leaf nodes have height greater than zero. Leaf nodes have height zero because they have no children below them.
Summary
Depth measures how far a node is from the root, counting edges downward.
Height measures how far a node is from its farthest leaf, counting edges downward.
The height of the tree is the height of its root node, showing the tree's overall size.

Practice

(1/5)
1. What does the depth of a node in a tree represent?
easy
A. The number of edges from the root to that node
B. The number of edges from that node to the farthest leaf
C. The total number of nodes in the tree
D. The number of children the node has

Solution

  1. Step 1: Understand the definition of depth

    Depth is defined as the distance from the root node to the given node, measured in edges.
  2. Step 2: Compare with other options

    Height measures distance to farthest leaf, not depth. Total nodes and children count are unrelated.
  3. Final Answer:

    The number of edges from the root to that node -> Option A
  4. Quick Check:

    Depth = edges from root to node [OK]
Hint: Depth counts edges from root down to the node [OK]
Common Mistakes:
  • Confusing depth with height
  • Thinking depth counts children
  • Mixing depth with total nodes
2. Which of the following correctly describes the height of a leaf node in a tree?
easy
A. Height is always 1
B. Height is 0 because it has no children
C. Height equals the depth of the leaf
D. Height is the number of siblings it has

Solution

  1. Step 1: Recall height definition for any node

    Height is the number of edges on the longest path from the node down to a leaf.
  2. Step 2: Apply to leaf node

    A leaf node has no children, so the longest path down is zero edges, making height 0.
  3. Final Answer:

    Height is 0 because it has no children -> Option B
  4. Quick Check:

    Leaf height = 0 edges down [OK]
Hint: Leaf nodes always have height zero [OK]
Common Mistakes:
  • Assuming height is 1 for leaves
  • Confusing height with depth
  • Counting siblings as height
3. Consider the following tree structure:
        A
       / \
      B   C
     /   / \
    D   E   F
           /
          G

What is the height of node C?
medium
A. 0
B. 1
C. 3
D. 2

Solution

  1. Step 1: Identify the subtree rooted at node C

    Node C has children E and F; F has child G.
  2. Step 2: Find longest path from C down to a leaf

    Paths: C->E (1 edge), C->F->G (2 edges). Longest path length is 2 edges.
  3. Final Answer:

    2 -> Option D
  4. Quick Check:

    Height of C = longest path down = 2 edges [OK]
Hint: Height = longest edges down from node [OK]
Common Mistakes:
  • Counting number of children instead of edges
  • Confusing height with depth
  • Ignoring deeper descendants
4. A student wrote that the depth of the root node in any tree is 1. What is wrong with this statement?
medium
A. Depth depends on number of children, not fixed
B. Depth of root is always equal to height
C. Depth of root is always 0, not 1
D. Depth cannot be defined for root node

Solution

  1. Step 1: Recall definition of depth for root

    Depth is edges from root to node; root is at distance zero from itself.
  2. Step 2: Identify error in student's statement

    Student incorrectly assigns depth 1 to root; correct depth is 0.
  3. Final Answer:

    Depth of root is always 0, not 1 -> Option C
  4. Quick Check:

    Root depth = 0 edges [OK]
Hint: Root node depth is zero by definition [OK]
Common Mistakes:
  • Assigning depth 1 to root
  • Confusing depth with height
  • Thinking depth depends on children
5. Given a tree where the root node has depth 0 and height 4, and a node at depth 3 has height 1, what is the height of a leaf node at depth 4?
hard
A. 0
B. 1
C. 3
D. 4

Solution

  1. Step 1: Understand height of leaf nodes

    Leaf nodes have height 0 because they have no children below.
  2. Step 2: Apply to leaf at depth 4

    Since the node at depth 3 has height 1, its child at depth 4 must be a leaf with height 0.
  3. Final Answer:

    0 -> Option A
  4. Quick Check:

    Leaf node height = 0 [OK]
Hint: Leaf nodes always have height zero regardless of depth [OK]
Common Mistakes:
  • Assuming height equals depth
  • Thinking height increases with depth
  • Confusing height with number of siblings