Bird
Raised Fist0
DSA Javascriptprogramming~5 mins

Binary Tree Node Structure in DSA Javascript - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is a binary tree node?
A binary tree node is a basic unit of a binary tree that contains data and has up to two child nodes: left and right.
Click to reveal answer
beginner
What are the main parts of a binary tree node?
A binary tree node has three main parts:
1. Data (value stored)
2. Left child (pointer to left node)
3. Right child (pointer to right node)
Click to reveal answer
beginner
Show a simple JavaScript class for a binary tree node.
class TreeNode {<br>  constructor(value) {<br>    this.value = value;<br>    this.left = null;<br>    this.right = null;<br>  }<br>}
Click to reveal answer
beginner
Why do left and right children start as null in a new binary tree node?
Because when a node is created, it has no children yet. Null means no child node connected on that side.
Click to reveal answer
intermediate
How does a binary tree node differ from a linked list node?
A binary tree node has two pointers (left and right), while a linked list node has only one pointer to the next node.
Click to reveal answer
What does a binary tree node typically contain?
AData, left child, right child
BData, next node
COnly data
DData, previous node
In JavaScript, how do you represent a missing child in a binary tree node?
Aundefined
Bnull
C0
Dfalse
Which of these is NOT a part of a binary tree node?
ARight child pointer
BLeft child pointer
CParent pointer
DValue
What is the initial value of left and right children when a node is created?
Anull
B0
Cundefined
Dempty string
How many children can a binary tree node have at most?
A1
B3
CUnlimited
D2
Describe the structure of a binary tree node and its parts.
Think about what each node stores and how it connects to others.
You got /4 concepts.
    Write a simple JavaScript class for a binary tree node and explain why left and right start as null.
    Focus on the code and the meaning of null pointers.
    You got /5 concepts.

      Practice

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

      Solution

      1. Step 1: Understand binary tree node components

        A binary tree node stores a value and has exactly two child references: left and right.
      2. Step 2: Compare options with binary tree 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 left and right 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 JavaScript syntax to define a binary tree node class?
      easy
      A. class Node { constructor(value) { this.value = value; this.left = null; this.right = null; } }
      B. function Node(value) { this.value = value; this.next = null; }
      C. class Node { constructor(value) { this.value = value; this.children = []; } }
      D. var Node = (value) => { this.value = value; this.left = null; this.right = null; }

      Solution

      1. Step 1: Identify correct class syntax for binary tree node

        class Node { constructor(value) { this.value = value; this.left = null; this.right = null; } } uses ES6 class with constructor setting value, left, and right to null.
      2. Step 2: Check other options for errors

        function Node(value) { this.value = value; this.next = null; } uses next pointer (linked list), C uses children array (general tree), D uses arrow function incorrectly for constructor.
      3. Final Answer:

        class Node { constructor(value) { this.value = value; this.left = null; this.right = null; } } -> Option A
      4. Quick Check:

        Class with value, left, right = class Node { constructor(value) { this.value = value; this.left = null; this.right = null; } } [OK]
      Hint: Use ES6 class with left and right set to null [OK]
      Common Mistakes:
      • Using 'next' instead of 'left' and 'right'
      • Using arrow function as constructor
      • Using children array instead of left/right
      3. What will be the output of the following code?
      class Node {
        constructor(value) {
          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 + ' -> ' + root.value + ' -> ' + root.right.value);
      medium
      A. "5 -> 10 -> 15"
      B. "10 -> 5 -> 15"
      C. "null -> 10 -> null"
      D. "15 -> 10 -> 5"

      Solution

      1. Step 1: Trace node creation and assignments

        Root node value is 10, left child is 5, right child is 15.
      2. Step 2: Evaluate console.log output

        Output concatenates left.value (5), root.value (10), right.value (15) with arrows.
      3. Final Answer:

        "5 -> 10 -> 15" -> Option A
      4. Quick Check:

        Left 5, root 10, right 15 = "5 -> 10 -> 15" [OK]
      Hint: Print left, root, right values in order [OK]
      Common Mistakes:
      • Mixing order of values in output
      • Confusing left and right child values
      • Forgetting to access .value property
      4. Identify the error in the following binary tree node code snippet:
      class Node {
        constructor(value) {
          this.value = value;
          this.left = null;
          this.right = null;
        }
      }
      
      const root = new Node(20);
      root.left = new Node(10);
      root.right = new Node(30);
      root.left.left = 15;
      console.log(root.left.left.value);
      medium
      A. Missing constructor in Node class
      B. Using console.log incorrectly
      C. Assigning a number directly instead of a Node object to left.left
      D. root.right is not assigned properly

      Solution

      1. Step 1: Analyze assignment to root.left.left

        root.left.left is assigned 15 (a number), not a Node instance.
      2. Step 2: Understand why console.log fails

        Accessing .value on a number (15) causes error because 15 has no .value property.
      3. Final Answer:

        Assigning a number directly instead of a Node object to left.left -> Option C
      4. Quick Check:

        Child nodes must be Node objects, not raw values [OK]
      Hint: Child nodes must be Node instances, not raw values [OK]
      Common Mistakes:
      • Assigning raw values instead of Node objects
      • Ignoring error from accessing .value on number
      • Assuming constructor is missing
      5. Given the following binary tree node class, how would you write a function to count the total number of nodes in the tree starting from the root?
      class Node {
        constructor(value) {
          this.value = value;
          this.left = null;
          this.right = null;
        }
      }

      Choose the correct function implementation.
      hard
      A. function countNodes(node) { if (node === null) return null; return 1 + countNodes(node.left) + countNodes(node.right); }
      B. function countNodes(node) { if (!node) return 1; return countNodes(node.left) + countNodes(node.right); }
      C. function countNodes(node) { return node.value + countNodes(node.left) + countNodes(node.right); }
      D. function countNodes(node) { if (!node) return 0; return 1 + countNodes(node.left) + countNodes(node.right); }

      Solution

      1. Step 1: Understand base case for recursion

        If node is null, count is zero because no node exists there.
      2. Step 2: Sum current node plus counts of left and right subtrees

        Return 1 (current node) plus recursive counts of left and right children.
      3. Step 3: Check options for correct base case and sum

        function countNodes(node) { if (!node) return 0; return 1 + countNodes(node.left) + countNodes(node.right); } correctly returns 0 for null and sums 1 + left + right counts.
      4. Final Answer:

        function countNodes(node) { if (!node) return 0; return 1 + countNodes(node.left) + countNodes(node.right); } -> Option D
      5. Quick Check:

        Count nodes = 1 + left count + right count [OK]
      Hint: Return 0 for null, else 1 + left + right counts [OK]
      Common Mistakes:
      • Returning 1 for null node instead of 0
      • Adding node.value instead of count 1
      • Returning null instead of 0 in base case
      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