Bird
Raised Fist0
DSA Javascriptprogramming~5 mins

BST Search Operation in DSA Javascript - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is a Binary Search Tree (BST)?
A Binary Search Tree is a tree data structure where each node has at most two children. The left child's value is less than the parent's value, and the right child's value is greater than the parent's value.
Click to reveal answer
beginner
How does the search operation work in a BST?
Start at the root. If the value equals the node's value, return it. If the value is less, search the left subtree. If greater, search the right subtree. Repeat until found or no nodes left.
Click to reveal answer
intermediate
What is the time complexity of searching in a balanced BST?
The time complexity is O(log n) because each step eliminates half of the remaining nodes to search.
Click to reveal answer
beginner
What happens if the value is not found in the BST during search?
The search reaches a null child (no node), meaning the value is not in the tree. The operation returns null or indicates not found.
Click to reveal answer
intermediate
Show the JavaScript code snippet for searching a value in a BST node.
function searchBST(node, val) {
  if (node === null) return null;
  if (node.val === val) return node;
  if (val < node.val) return searchBST(node.left, val);
  else return searchBST(node.right, val);
}
Click to reveal answer
In a BST, where do you search if the target value is less than the current node's value?
ALeft subtree
BRight subtree
CBoth subtrees
DRoot node only
What is the time complexity of searching in a balanced BST?
AO(n)
BO(1)
CO(n log n)
DO(log n)
What does the search function return if the value is not found in the BST?
AThe last visited node
BNull or equivalent
CThe root node
DAn error
Which property must a BST satisfy for the search operation to work correctly?
ALeft child values are less than parent, right child values are greater
BRight child values are less than parent
CAll nodes have two children
DLeft child values are greater than parent
What is the first step in the BST search operation?
ACheck the left child
BCheck the right child
CCompare the target value with the root node's value
DReturn null
Explain how the search operation works in a Binary Search Tree.
Think about how you decide which side of the tree to explore.
You got /5 concepts.
    Write a simple recursive function in JavaScript to search for a value in a BST.
    Use if-else conditions and recursion.
    You got /5 concepts.

      Practice

      (1/5)
      1. What is the main purpose of the search operation in a Binary Search Tree (BST)?
      easy
      A. To insert a new value into the BST
      B. To find whether a given value exists in the BST
      C. To delete a value from the BST
      D. To balance the BST

      Solution

      1. Step 1: Understand the search operation

        The search operation in a BST is used to check if a specific value is present in the tree.
      2. Step 2: Differentiate from other operations

        Insertion adds new values, deletion removes values, and balancing adjusts the tree structure. Search only checks for existence.
      3. Final Answer:

        To find whether a given value exists in the BST -> Option B
      4. Quick Check:

        Search = Find value [OK]
      Hint: Search checks presence, not insertion or deletion [OK]
      Common Mistakes:
      • Confusing search with insert or delete
      • Thinking search changes the tree
      • Assuming search balances the tree
      2. Which of the following is the correct syntax to start a search function for a BST node in JavaScript?
      easy
      A. function searchBST(value, root) { }
      B. function searchBST(value) { return root; }
      C. function searchBST(root) { return value; }
      D. function searchBST(root, value) { }

      Solution

      1. Step 1: Identify parameters needed for BST search

        The search needs the root node to start and the value to find, so parameters are (root, value).
      2. Step 2: Check function signature correctness

        function searchBST(root, value) { } correctly uses (root, value). Options A, C, and D have wrong parameter order or missing parameters.
      3. Final Answer:

        function searchBST(root, value) { } -> Option D
      4. Quick Check:

        Correct parameters order = function searchBST(root, value) { } [OK]
      Hint: Root node first, value second in search function [OK]
      Common Mistakes:
      • Swapping parameter order
      • Missing one parameter
      • Returning wrong variable immediately
      3. Consider the following BST and the search code snippet:
      class Node {
        constructor(val) {
          this.val = val;
          this.left = null;
          this.right = null;
        }
      }
      
      const root = new Node(10);
      root.left = new Node(5);
      root.right = new Node(15);
      
      function searchBST(root, val) {
        if (!root) return false;
        if (root.val === val) return true;
        if (val < root.val) return searchBST(root.left, val);
        else return searchBST(root.right, val);
      }
      
      console.log(searchBST(root, 15));
      What will be the output?
      medium
      A. true
      B. false
      C. undefined
      D. Error

      Solution

      1. Step 1: Trace the search for value 15

        Start at root (10). Since 15 > 10, move to right child (15).
      2. Step 2: Check if current node value matches 15

        Node value is 15, which matches the search value, so return true.
      3. Final Answer:

        true -> Option A
      4. Quick Check:

        Value found = true [OK]
      Hint: Compare value with node, go left or right [OK]
      Common Mistakes:
      • Returning false too early
      • Not checking node value before recursion
      • Confusing left and right child directions
      4. The following code is intended to search a value in a BST but does not work correctly. What is the error?
      function searchBST(root, val) {
        if (root === null) return false;
        if (root.val === val) return true;
        if (val > root.val) return searchBST(root.left, val);
        else return searchBST(root.right, val);
      }
      medium
      A. Incorrect return type
      B. Missing base case for empty tree
      C. The comparison directions for left and right child are swapped
      D. Function parameters are wrong

      Solution

      1. Step 1: Analyze comparison logic for recursion

        If val > root.val, search should go right, but code goes left. This is reversed.
      2. Step 2: Confirm correct child direction for BST search

        For val > root.val, search right subtree; for val < root.val, search left subtree.
      3. Final Answer:

        The comparison directions for left and right child are swapped -> Option C
      4. Quick Check:

        Left/right child direction swapped = The comparison directions for left and right child are swapped [OK]
      Hint: Greater value goes right, smaller goes left [OK]
      Common Mistakes:
      • Swapping left and right child in recursion
      • Forgetting base case
      • Returning wrong data type
      5. You have a BST with nodes: 20 (root), 10 (left child), 30 (right child), 5 (left of 10), 15 (right of 10). You want to search for value 12. Which nodes will the search visit in order?
      hard
      A. 20 -> 10 -> 15
      B. 20 -> 30 -> 15
      C. 20 -> 10 -> 5
      D. 20 -> 15 -> 10

      Solution

      1. Step 1: Start at root node 20 and compare with 12

        Since 12 < 20, move to left child 10.
      2. Step 2: Compare 12 with node 10

        12 > 10, so move to right child 15.
      3. Step 3: Compare 12 with node 15

        12 < 15, so move to left child, which is null (not in tree), search ends.
      4. Final Answer:

        20 -> 10 -> 15 -> Option A
      5. Quick Check:

        Visited nodes = 20, 10, 15 [OK]
      Hint: Go left if smaller, right if bigger, stop if null [OK]
      Common Mistakes:
      • Visiting wrong child nodes
      • Assuming 12 is in the tree
      • Skipping nodes in path
      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