The diameter of a binary tree is the length of the longest path between any two nodes in the tree. This path may or may not pass through the root.
Click to reveal answer
intermediate
How do you calculate the diameter of a binary tree using recursion?
Calculate the height of left and right subtrees for each node. The diameter at that node is the sum of these heights plus two (for the edges to the children). The overall diameter is the maximum of all such values.
Click to reveal answer
beginner
Why might the longest path in a binary tree not pass through the root?
Because the longest path can be between two nodes in the same subtree, not necessarily involving the root node.
Click to reveal answer
intermediate
What is the time complexity of the optimal diameter of binary tree algorithm?
The time complexity is O(n), where n is the number of nodes, because each node is visited once during the height and diameter calculation.
Click to reveal answer
beginner
In the diameter calculation, what does the height of a node represent?
The height of a node is the number of edges on the longest path from that node down to a leaf node.
Click to reveal answer
What does the diameter of a binary tree measure?
AThe number of nodes in the tree
BThe height of the tree
CThe number of leaf nodes
DThe longest path between any two nodes
✗ Incorrect
The diameter is the longest path between any two nodes in the tree.
Which of these is true about the diameter path in a binary tree?
AIt always passes through the root
BIt equals the height of the tree
CIt can be entirely in one subtree
DIt is the shortest path between two nodes
✗ Incorrect
The diameter path can be inside one subtree and not pass through the root.
What is the key step in calculating the diameter at each node?
ASum of heights of left and right subtrees plus two
BSum of number of nodes in left and right subtrees
CMaximum depth of the tree
DNumber of leaf nodes
✗ Incorrect
Diameter at a node = height(left subtree) + height(right subtree) + 2.
What is the time complexity of the optimal diameter calculation algorithm?
AO(n^2)
BO(n)
CO(n log n)
DO(log n)
✗ Incorrect
Each node is visited once, so time complexity is O(n).
What does the height of a node in a binary tree represent?
ANumber of edges from node to deepest leaf
BNumber of edges from node to root
CNumber of child nodes
DNumber of sibling nodes
✗ Incorrect
Height is the longest path from the node down to a leaf node.
Explain how to find the diameter of a binary tree using recursion.
Think about how height and diameter relate at each node.
You got /5 concepts.
Why can the longest path in a binary tree not pass through the root? Give an example scenario.
Consider a tree where one side is much deeper than the other.
You got /4 concepts.
Practice
(1/5)
1. What does the diameter of a binary tree represent?
easy
A. The height of the tree
B. The number of nodes in the tree
C. The number of leaf nodes in the tree
D. The length of the longest path between any two nodes in the tree
Solution
Step 1: Understand the diameter definition
The diameter is the longest path between any two nodes, not just from root to leaf.
Step 2: Differentiate from other tree properties
Height is longest root-to-leaf path, number of nodes counts all nodes, leaves count only leaf nodes.
Final Answer:
The length of the longest path between any two nodes in the tree -> Option D
Quick Check:
Diameter = longest path between nodes [OK]
Hint: Diameter is longest path between any two nodes, not just height [OK]
Common Mistakes:
Confusing diameter with tree height
Thinking diameter counts nodes instead of edges
Assuming diameter is from root only
2. Which TypeScript function signature correctly represents a function to compute the diameter of a binary tree node?
easy
A. function diameter(root: TreeNode | null): number
B. function diameter(root: number): TreeNode
C. function diameter(root: TreeNode): void
D. function diameter(): number
Solution
Step 1: Identify input and output types
The function takes a TreeNode or null and returns a number representing diameter length.
Step 2: Match correct signature
function diameter(root: TreeNode | null): number matches input type TreeNode|null and returns number, others mismatch input/output.
Final Answer:
function diameter(root: TreeNode | null): number -> Option A
Quick Check:
Input: TreeNode|null, Output: number [OK]
Hint: Diameter function inputs root node, returns number length [OK]
Common Mistakes:
Using wrong input type like number instead of TreeNode
Returning void instead of number
Missing null option for empty tree
3. What is the diameter of the following binary tree?
1
/ \
2 3
/
4
medium
A. 2
B. 3
C. 4
D. 1
Solution
Step 1: Identify longest path in tree
Longest path is from node 4 to node 3 passing through 2 and 1, length 3 edges.
Step 2: Count edges in longest path
Path 4 -> 2 -> 1 -> 3 has 3 edges, so diameter is 3.
Final Answer:
3 -> Option B
Quick Check:
Longest path edges = 3 [OK]
Hint: Count edges on longest path between any two nodes [OK]
Common Mistakes:
Counting nodes instead of edges
Choosing height instead of diameter
Ignoring path through root
4. Given this TypeScript code snippet to compute diameter, what is the error?
function diameter(root: TreeNode | null): number {
let maxDiameter = 0;
function depth(node: TreeNode | null): number {
if (!node) return 0;
const left = depth(node.left);
const right = depth(node.right);
maxDiameter = Math.max(maxDiameter, left + right + 1);
return Math.max(left, right) + 1;
}
depth(root);
return maxDiameter;
}
medium
A. Diameter counts nodes, should count edges (subtract 1)
B. Missing base case for null node
C. Returns depth instead of diameter
D. maxDiameter is not updated inside depth function
Solution
Step 1: Analyze diameter calculation
maxDiameter updates with left + right + 1, counting nodes on path.
Step 2: Correct diameter definition
Diameter is number of edges, so subtract 1 from node count to get edges.
Final Answer:
Diameter counts nodes, should count edges (subtract 1) -> Option A
Quick Check:
Diameter edges = nodes - 1 [OK]
Hint: Diameter = nodes on path minus 1 for edges [OK]
Common Mistakes:
Confusing nodes count with edges count
Forgetting to subtract 1 for edges
Incorrect base case handling
5. How would you modify the diameter function to also return the actual longest path nodes in TypeScript?
hard
A. Use BFS to find diameter and path separately after diameter calculation
B. Return only diameter number, path cannot be found during recursion
C. Track and store nodes on longest path during recursion, return path array with diameter
D. Store only leaf nodes and reconstruct path after diameter is found
Solution
Step 1: Understand diameter path tracking
During recursion, keep track of nodes on left and right depths to build longest path.
Step 2: Modify function to store and return path
Update maxDiameter and store nodes forming longest path, return both diameter and path array.
Final Answer:
Track and store nodes on longest path during recursion, return path array with diameter -> Option C
Quick Check:
Store nodes during recursion to get path [OK]
Hint: Store nodes on longest path during recursion to return path [OK]
Common Mistakes:
Assuming path cannot be found during recursion
Trying BFS after diameter calculation only
Only storing leaf nodes misses full path
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.