The height of a binary tree is the number of edges on the longest path from the root node to a leaf node. It measures how tall the tree is.
Click to reveal answer
beginner
How do you calculate the height of a binary tree recursively?
Calculate the height of the left subtree and the right subtree recursively, then take the maximum of these two heights and add 1 for the current node.
Click to reveal answer
beginner
What is the height of an empty binary tree?
The height of an empty binary tree is defined as -1 because there are no nodes and no edges.
Click to reveal answer
beginner
Why is the height of a leaf node 0?
A leaf node has no children, so the longest path from itself to a leaf is zero edges, making its height 0.
Click to reveal answer
intermediate
What is the time complexity of calculating the height of a binary tree?
The time complexity is O(n), where n is the number of nodes, because each node is visited once during the height calculation.
Click to reveal answer
What does the height of a binary tree represent?
AThe number of edges in the longest path from root to leaf
BThe number of nodes in the tree
CThe number of leaf nodes
DThe number of children of the root
✗ Incorrect
The height is the count of edges on the longest path from the root node to any leaf node.
What is the height of an empty binary tree?
A0
B-1
C1
DUndefined
✗ Incorrect
By definition, an empty tree has height -1 because it has no nodes or edges.
Which approach is commonly used to find the height of a binary tree?
AIterative level order traversal
BCounting leaf nodes
CSorting the nodes
DRecursive depth calculation
✗ Incorrect
Recursion is used to calculate the height by checking left and right subtree heights.
If a node has no children, what is its height?
A1
B-1
C0
DDepends on the tree
✗ Incorrect
A leaf node has height 0 because there are no edges below it.
What is the time complexity to compute the height of a binary tree with n nodes?
AO(n)
BO(log n)
CO(n log n)
DO(1)
✗ Incorrect
Each node is visited once, so the time complexity is O(n).
Explain how to find the height of a binary tree using recursion.
Think about how you measure the longest path from root to leaf.
You got /4 concepts.
Describe why the height of a leaf node is zero and the height of an empty tree is -1.
Consider what height means in terms of edges.
You got /4 concepts.
Practice
(1/5)
1. What does the height of a binary tree represent?
easy
A. The number of edges on the longest path from root to a leaf
B. The total number of nodes in the tree
C. The number of leaf nodes in the tree
D. The number of children of the root node
Solution
Step 1: Understand the definition of height in a binary tree
The height is defined as the longest path from the root node down to the farthest leaf node, counted by edges.
Step 2: Compare with other options
Other options describe different properties: total nodes, leaf count, or root children, which are not height.
Final Answer:
The number of edges on the longest path from root to a leaf -> Option A
Quick Check:
Height = longest root-to-leaf edge count [OK]
Hint: Height counts edges, not nodes or leaves [OK]
Common Mistakes:
Confusing height with total nodes
Counting nodes instead of edges
Thinking height is number of leaves
2. Which of the following C# method signatures correctly defines a recursive function to find the height of a binary tree node named root?
easy
A. public int Height(Node root, int height)
B. public void Height(Node root)
C. public int Height()
D. public int Height(Node root)
Solution
Step 1: Identify correct return type and parameters
The height function must return an integer representing height, so return type is int. It needs the root node as input, so parameter is Node root.
Step 2: Check options for matching signature
public int Height(Node root) matches: returns int and takes Node root. public void Height(Node root) returns void (wrong), C has no parameters (wrong), D has extra parameter not needed for basic height.
Final Answer:
public int Height(Node root) -> Option D
Quick Check:
Return int and take root node parameter [OK]
Hint: Height returns int and takes root node as parameter [OK]
Common Mistakes:
Using void return type
Missing root parameter
Adding unnecessary parameters
3. What is the output of the following C# code snippet that calculates the height of a binary tree?
class Node {
public int data;
public Node left, right;
public Node(int d) { data = d; left = right = null; }
}
int Height(Node root) {
if (root == null) return -1;
int leftHeight = Height(root.left);
int rightHeight = Height(root.right);
return Math.Max(leftHeight, rightHeight) + 1;
}
// Tree:
// 1
// / \
// 2 3
// /
// 4
Node root = new Node(1);
root.left = new Node(2);
root.right = new Node(3);
root.left.left = new Node(4);
Console.WriteLine(Height(root));
medium
A. 1
B. 3
C. 2
D. 4
Solution
Step 1: Understand the height calculation logic
Height returns -1 for null nodes. For leaf nodes, height = 0. Height is max of left and right subtree heights plus 1.
Step 2: Calculate height for given tree
Node 4: left and right null, height = 0. Node 2: left height 0 (node 4), right null (-1), max=0 +1=1. Node 3: leaf, height=0. Root 1: left height 1, right height 0, max=1 +1=2.
Final Answer:
2 -> Option C
Quick Check:
Height of root = 2 edges [OK]
Hint: Height counts edges; leaf node height is 0 [OK]
Common Mistakes:
Counting nodes instead of edges
Returning 0 for null instead of -1
Miscomputing max height
4. Identify the error in this C# method to find the height of a binary tree and select the fix:
int Height(Node root) {
if (root == null) return 0;
int leftHeight = Height(root.left);
int rightHeight = Height(root.right);
return Math.Max(leftHeight, rightHeight);
}
medium
A. Change base case return from 0 to -1
B. Add +1 to the return statement after Math.Max
C. Remove recursive calls to left and right
D. Change Math.Max to Math.Min
Solution
Step 1: Analyze base case and return statement
Base case returns 0 for null, which means height of empty tree is 0. The recursive calls get left and right heights correctly.
Step 2: Check final return calculation
Height should be max of left and right heights plus 1 for current node. The code misses +1, so height is underestimated.
Final Answer:
Add +1 to the return statement after Math.Max -> Option B
Quick Check:
Height = max(left, right) + 1 [OK]
Hint: Add +1 after max to count current node [OK]
Common Mistakes:
Forgetting +1 in return
Changing base case incorrectly
Using min instead of max
5. Given a binary tree where each node stores an integer, write a method to find the height of the tree and then return the sum of all node values at the maximum height level. Which approach correctly solves this problem?
hard
A. First find height, then traverse tree again to sum nodes at that height
B. Sum all nodes during height calculation recursively
C. Return height multiplied by root node value
D. Sum all leaf nodes regardless of height
Solution
Step 1: Understand problem requirements
We need the height of the tree and sum of nodes at that height level (deepest level).
Step 2: Choose correct approach
First find height, then traverse tree again to sum nodes at that height: Find height first, then traverse again to sum nodes at that level. This separates concerns and is clear. Sum all nodes during height calculation recursively tries to sum during height calculation, but height is computed bottom-up and summing nodes at max height requires separate traversal. Return height multiplied by root node value and D do not meet problem requirements.
Final Answer:
First find height, then traverse tree again to sum nodes at that height -> Option A
Quick Check:
Two-pass approach: height then sum at height [OK]
Hint: Find height first, then sum nodes at that level [OK]
Common Mistakes:
Trying to sum nodes during height recursion
Multiplying height by root value
Summing all leaf nodes ignoring height
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.