Bird
Raised Fist0
DSA Typescriptprogramming~10 mins

Tree Terminology Root Leaf Height Depth Level in DSA Typescript - Interactive Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to create the root node of a tree.

DSA Typescript
const root = new TreeNode([1]);
Drag options to blanks, or click blank then click option'
Anull
B0
Cundefined
DrootValue
Attempts:
3 left
💡 Hint
Common Mistakes
Using null or undefined as the root node value.
2fill in blank
medium

Complete the code to check if a node is a leaf (has no children).

DSA Typescript
function isLeaf(node: TreeNode): boolean {
  return node.children.length [1] 0;
}
Drag options to blanks, or click blank then click option'
A>
B===
C<
D!==
Attempts:
3 left
💡 Hint
Common Mistakes
Using > or < instead of === to check for zero children.
3fill in blank
hard

Fix the error in the function that calculates the depth of a node.

DSA Typescript
function getDepth(node: TreeNode): number {
  if (!node.parent) return [1];
  return 1 + getDepth(node.parent);
}
Drag options to blanks, or click blank then click option'
A0
Bnull
C-1
Dundefined
Attempts:
3 left
💡 Hint
Common Mistakes
Returning null or undefined instead of 0 for root depth.
4fill in blank
hard

Complete the code to calculate the height of a node.

DSA Typescript
function getHeight(node: TreeNode): number {
  if (node.children.length === 0) return [1];
  return 1 + Math.max(...node.children.map(child => getHeight(child)));
}
Drag options to blanks, or click blank then click option'
A0
B1
C)
Attempts:
3 left
💡 Hint
Common Mistakes
Returning 1 for leaf height or missing closing parenthesis.
5fill in blank
hard

Fill all three blanks to create a function that returns the level of a node in the tree.

DSA Typescript
function getLevel(node: TreeNode): number {
  let level = 0;
  let current = node;
  while (current.[1]) {
    level [2] level + 1;
    current = current.[3];
  }
  return level;
}
Drag options to blanks, or click blank then click option'
Aparent
B=
C+=
Dchild
Attempts:
3 left
💡 Hint
Common Mistakes
Using assignment instead of increment, or wrong property name.

Practice

(1/5)
1. In a tree data structure, which node is called the root?
easy
A. A node with no children
B. The topmost node with no parent
C. Any node at the bottom level
D. A node with exactly two children

Solution

  1. Step 1: Understand the root node definition

    The root node is the starting point of a tree and has no parent node above it.
  2. Step 2: Compare options with definition

    The topmost node with no parent matches the definition exactly. Other options describe leaf nodes or specific child counts.
  3. Final Answer:

    The topmost node with no parent -> Option B
  4. Quick Check:

    Root = topmost node with no parent [OK]
Hint: Root is always the top node without a parent [OK]
Common Mistakes:
  • Confusing root with leaf node
  • Thinking root must have children
  • Assuming root is at the bottom
2. Which of the following is the correct TypeScript syntax to define a simple tree node interface with a value and children array?
easy
A. interface TreeNode { value: number; children: TreeNode[]; }
B. interface TreeNode { value: number; children: TreeNode; }
C. interface TreeNode { value: number; children: number[]; }
D. interface TreeNode { value: number; child: TreeNode[]; }

Solution

  1. Step 1: Check correct property names and types

    The children property should be an array of TreeNode objects, so type is TreeNode[].
  2. Step 2: Validate each option

    interface TreeNode { value: number; children: TreeNode[]; } correctly uses 'children: TreeNode[]'. interface TreeNode { value: number; children: TreeNode; } uses single TreeNode, not array. interface TreeNode { value: number; children: number[]; } uses number array incorrectly. interface TreeNode { value: number; child: TreeNode[]; } uses wrong property name 'child'.
  3. Final Answer:

    interface TreeNode { value: number; children: TreeNode[]; } -> Option A
  4. Quick Check:

    Children is array of TreeNode objects [OK]
Hint: Children property must be an array of TreeNode [OK]
Common Mistakes:
  • Using singular 'child' instead of 'children'
  • Setting children as single object, not array
  • Using wrong type like number[] for children
3. Given the following tree structure in TypeScript, what is the height of the tree?
const tree = {
  value: 1,
  children: [
    { value: 2, children: [] },
    { value: 3, children: [
      { value: 4, children: [] }
    ] }
  ]
};
medium
A. 1
B. 4
C. 3
D. 2

Solution

  1. Step 1: Understand height definition

    Height is the longest path from root to any leaf node, counting edges.
  2. Step 2: Trace longest path in given tree

    Root (1) to node (3) to node (4) is longest path with 2 edges, so height = 2. Counting nodes gives 3 levels, but height counts edges, so height = 2.
  3. Final Answer:

    2 -> Option D
  4. Quick Check:

    Height = longest edge count from root to leaf = 2 [OK]
Hint: Height counts edges, not nodes, from root to deepest leaf [OK]
Common Mistakes:
  • Counting nodes instead of edges for height
  • Confusing height with depth
  • Ignoring deeper branches
4. Consider this TypeScript code snippet for calculating the depth of a node in a tree. Identify the bug:
function getDepth(node: TreeNode, root: TreeNode, depth = 0): number {
  if (node === root) return depth;
  return getDepth(node, root.children[0], depth + 1);
}
medium
A. It always checks only the first child, missing other branches
B. It never increments depth
C. It compares node and root incorrectly
D. It should return depth + 1 instead of depth

Solution

  1. Step 1: Analyze recursive call logic

    The function always calls getDepth on root.children[0], ignoring other children, so it misses nodes not in first child's subtree.
  2. Step 2: Understand impact on depth calculation

    This causes incorrect depth for nodes not in first child's branch, as they are never reached.
  3. Final Answer:

    It always checks only the first child, missing other branches -> Option A
  4. Quick Check:

    Recursion must explore all children, not just first [OK]
Hint: Check if recursion covers all children, not just one [OK]
Common Mistakes:
  • Assuming single child covers whole tree
  • Not handling multiple branches in recursion
  • Confusing depth increment logic
5. You have a tree where each node has a level property indicating its distance from the root (root level = 0). If a node has level 3, what is its depth and height relative to the root?
hard
A. Depth = 0, Height = 3
B. Depth = 3, Height = 3
C. Depth = 3, Height depends on subtree size
D. Depth and Height both equal to 0

Solution

  1. Step 1: Understand level and depth relation

    Level and depth both measure distance from root, so depth = level = 3.
  2. Step 2: Understand height meaning

    Height is longest path from node down to leaf, which depends on subtree size, so height is unknown from level alone.
  3. Final Answer:

    Depth = 3, Height depends on subtree size -> Option C
  4. Quick Check:

    Depth = level; height varies by subtree [OK]
Hint: Level = depth; height depends on node's subtree [OK]
Common Mistakes:
  • Confusing height with depth or level
  • Assuming height equals level always
  • Ignoring subtree size for height
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard