Bird
Raised Fist0
DSA Typescriptprogramming~10 mins

Binary Tree Node Structure 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 declare a class property for the node's value.

DSA Typescript
class TreeNode {
  value: [1];
  constructor(value: number) {
    this.value = value;
  }
}
Drag options to blanks, or click blank then click option'
Aboolean
Bany
Cnumber
Dstring
Attempts:
3 left
💡 Hint
Common Mistakes
Using string or boolean instead of number for the value type.
2fill in blank
medium

Complete the code to declare the left child property of the binary tree node.

DSA Typescript
class TreeNode {
  left: [1];
  constructor() {
    this.left = null;
  }
}
Drag options to blanks, or click blank then click option'
ATreeNode | null
Bnumber
Cboolean
Dstring
Attempts:
3 left
💡 Hint
Common Mistakes
Using just TreeNode without allowing null.
Using primitive types like number or string.
3fill in blank
hard

Fix the error in the constructor to properly initialize the right child property.

DSA Typescript
class TreeNode {
  right: TreeNode | null;
  constructor() {
    this.right = [1];
  }
}
Drag options to blanks, or click blank then click option'
Aundefined
Bnull
C0
Dfalse
Attempts:
3 left
💡 Hint
Common Mistakes
Initializing with undefined or 0 instead of null.
4fill in blank
hard

Fill both blanks to declare left and right children with correct types and initialize them to null.

DSA Typescript
class TreeNode {
  left: [1];
  right: [2];
  constructor() {
    this.left = null;
    this.right = null;
  }
}
Drag options to blanks, or click blank then click option'
ATreeNode | null
Bnumber
Cstring
Dboolean
Attempts:
3 left
💡 Hint
Common Mistakes
Using different types for left and right children.
Not allowing null as a possible value.
5fill in blank
hard

Fill all three blanks to complete the TreeNode class with value, left, and right properties properly typed and initialized.

DSA Typescript
class TreeNode {
  value: [1];
  left: [2];
  right: [3];
  constructor(value: number) {
    this.value = value;
    this.left = null;
    this.right = null;
  }
}
Drag options to blanks, or click blank then click option'
Anumber
BTreeNode | null
Cstring
Dboolean
Attempts:
3 left
💡 Hint
Common Mistakes
Using string or boolean for value.
Not allowing null for children.

Practice

(1/5)
1. What does a typical binary tree node contain in its structure?
easy
A. Only a value and a pointer to the next node
B. A value, a left child node, and a right child node
C. A value and multiple child nodes in a list
D. Only a value without any child nodes

Solution

  1. Step 1: Understand binary tree node components

    A binary tree node typically stores a value and references to two children: left and right.
  2. Step 2: Compare options with definition

    A value, a left child node, and a right child node correctly lists value, left child, and right child. Others describe linked list or general tree nodes.
  3. Final Answer:

    A value, a left child node, and a right child node -> Option B
  4. Quick Check:

    Binary tree node = value + left + right [OK]
Hint: Binary tree nodes always have two child pointers [OK]
Common Mistakes:
  • Confusing binary tree node with linked list node
  • Thinking nodes have multiple children like general trees
  • Ignoring child pointers in node structure
2. Which of the following is the correct TypeScript syntax to define a binary tree node class?
easy
A. class Node { value: number; left: Node | undefined; right: Node | undefined; constructor(value: number) { this.value = value; this.left = null; this.right = null; } }
B. class Node { value: number; left: Node; right: Node; constructor(value: number) { this.value = value; } }
C. class Node { value: number; left: Node | null; right: Node | null; constructor(value: number) { this.value = value; this.left = null; this.right = null; } }
D. class Node { value: number; left: Node | null; right: Node | null; constructor() { this.value = 0; this.left = null; this.right = null; } }

Solution

  1. Step 1: Check property types and initialization

    class Node { value: number; left: Node | null; right: Node | null; constructor(value: number) { this.value = value; this.left = null; this.right = null; } } correctly declares left and right as Node or null and initializes them to null in constructor.
  2. Step 2: Verify constructor parameters and assignments

    class Node { value: number; left: Node | null; right: Node | null; constructor(value: number) { this.value = value; this.left = null; this.right = null; } } constructor takes value and sets left and right to null, matching typical binary tree node setup.
  3. Final Answer:

    Correct TypeScript class with nullable children and proper constructor -> Option C
  4. Quick Check:

    Nullable children + constructor with value = class Node { value: number; left: Node | null; right: Node | null; constructor(value: number) { this.value = value; this.left = null; this.right = null; } } [OK]
Hint: Child nodes must allow null to represent empty branches [OK]
Common Mistakes:
  • Not initializing left and right to null
  • Using undefined instead of null for children
  • Missing constructor parameter for value
3. Given the following TypeScript code, what will be the output of console.log(root.left?.value)?
class Node {
  value: number;
  left: Node | null;
  right: Node | null;
  constructor(value: number) {
    this.value = value;
    this.left = null;
    this.right = null;
  }
}
const root = new Node(10);
root.left = new Node(5);
root.right = new Node(15);
console.log(root.left?.value);
medium
A. 5
B. undefined
C. null
D. 10

Solution

  1. Step 1: Analyze node assignments

    root.left is assigned a new Node with value 5, so root.left is not null.
  2. Step 2: Understand optional chaining and output

    Using root.left?.value safely accesses value of left node, which is 5.
  3. Final Answer:

    5 -> Option A
  4. Quick Check:

    root.left.value = 5 [OK]
Hint: Optional chaining returns value if node exists, else undefined [OK]
Common Mistakes:
  • Confusing null and undefined outputs
  • Assuming root.left is null by default
  • Misreading optional chaining operator
4. Identify the error in this TypeScript binary tree node class and fix it:
class Node {
  value: number;
  left: Node;
  right: Node;
  constructor(value: number) {
    this.value = value;
    this.left = null;
    this.right = null;
  }
}
medium
A. left and right should allow null type (Node | null)
B. Constructor should not assign null to left and right
C. value should be optional in constructor
D. Class should not have a constructor

Solution

  1. Step 1: Check property types vs assigned values

    left and right are typed as Node but assigned null, causing type error.
  2. Step 2: Fix type declarations

    Change left and right types to Node | null to allow null assignment.
  3. Final Answer:

    left and right should allow null type (Node | null) -> Option A
  4. Quick Check:

    Nullable children fix type error [OK]
Hint: Child nodes must be nullable if assigned null [OK]
Common Mistakes:
  • Not updating types when assigning null
  • Removing constructor unnecessarily
  • Making value optional without reason
5. How would you modify the binary tree node class to include a parent pointer, and what is the impact on tree traversal?
hard
A. No changes needed; parent pointer is implicit in left and right
B. Add a parent property of type number; no impact on traversal
C. Add a parent property as an array of nodes; allows multiple parents
D. Add a parent property of type Node | null; allows upward traversal from child to parent

Solution

  1. Step 1: Understand parent pointer addition

    Adding a parent property of type Node | null stores reference to parent node.
  2. Step 2: Impact on traversal

    This allows traversing upwards from child to parent, enabling bidirectional navigation.
  3. Final Answer:

    Add a parent property of type Node | null; allows upward traversal from child to parent -> Option D
  4. Quick Check:

    Parent pointer enables upward traversal [OK]
Hint: Parent pointer lets you move up the tree easily [OK]
Common Mistakes:
  • Using wrong type for parent pointer
  • Assuming parent pointer exists by default
  • Confusing parent pointer with multiple parents
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