Jump into concepts and practice - no test required
or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Recall & Review
beginner
What does BST stand for in data structures?
BST stands for Binary Search Tree, a type of tree data structure where each node has at most two children.
Click to reveal answer
beginner
What is the main property of a Binary Search Tree (BST)?
In a BST, for every node, all values in its left subtree are less than the node's value, and all values in its right subtree are greater than the node's value.
Click to reveal answer
intermediate
Why is the BST property important?
The BST property allows efficient searching, insertion, and deletion operations by narrowing down the search path based on comparisons.
Click to reveal answer
intermediate
What does the BST invariant ensure during tree operations?
The BST invariant ensures that after any insertion or deletion, the tree still maintains the BST property where left children are smaller and right children are larger than their parent nodes.
Click to reveal answer
intermediate
Can duplicate values be stored in a BST according to the BST property?
Typically, BSTs do not allow duplicate values because the property requires strict less-than and greater-than relationships. Some variations handle duplicates by specific rules, but standard BSTs avoid them.
Click to reveal answer
In a BST, where are values smaller than a node's value located?
AAt the root only
BIn the right subtree
CAnywhere in the tree
DIn the left subtree
✗ Incorrect
By definition, all values smaller than a node's value are found in its left subtree.
What must be true about the values in the right subtree of a BST node?
AThey are smaller than the node's value
BThey are greater than the node's value
CThey are equal to the node's value
DThey can be any value
✗ Incorrect
The BST property requires all values in the right subtree to be greater than the node's value.
What does the BST invariant help maintain?
AThe BST property after insertions and deletions
BThe number of nodes
CThe height of the tree
DThe tree is balanced
✗ Incorrect
The BST invariant ensures the BST property holds true after any changes to the tree.
Which operation benefits most from the BST property?
ASearching for a value
BSorting a list
CAdding duplicates
DReversing the tree
✗ Incorrect
Searching is efficient in a BST because the property guides the search path.
Are duplicate values allowed in a standard BST?
AOnly if they are in the right subtree
BYes, always
CNo, duplicates are not allowed
DOnly if they are in the left subtree
✗ Incorrect
Standard BSTs do not allow duplicates to maintain strict ordering.
Explain the BST property and why it is important for tree operations.
Think about how the tree organizes values to find them quickly.
You got /4 concepts.
Describe what the BST invariant means and how it affects insertion and deletion.
Consider what must stay true every time you add or remove a node.
You got /4 concepts.
Practice
(1/5)
1. What is the main property that defines a Binary Search Tree (BST)?
easy
A. All nodes have exactly two children.
B. Nodes are arranged in a circular linked list.
C. Left child nodes are smaller, right child nodes are larger than the parent node.
D. Each node stores a unique key with no order.
Solution
Step 1: Understand BST node arrangement
A BST arranges nodes so that left children have smaller values and right children have larger values than their parent node.
Step 2: Compare options with BST definition
Left child nodes are smaller, right child nodes are larger than the parent node. correctly states this property. Other options describe different or incorrect structures.
Final Answer:
Left child nodes are smaller, right child nodes are larger than the parent node. -> Option C
Quick Check:
BST property = left < parent < right [OK]
Hint: Remember BST means left smaller, right larger [OK]
Common Mistakes:
Thinking all nodes must have two children
Confusing BST with other tree types
Ignoring the order property in BST
2. Which of the following is the correct way to check if a node's left child maintains the BST property?
easy
A. left_child.value > node.value
B. left_child.value < node.value
C. left_child.value == node.value
D. left_child.value >= node.value
Solution
Step 1: Recall BST left child rule
In a BST, the left child's value must be less than the parent's value.
Step 2: Match this rule to options
left_child.value < node.value correctly states left_child.value < node.value. Other options violate this rule.
Final Answer:
left_child.value < node.value -> Option B
Quick Check:
Left child < parent [OK]
Hint: Left child must be smaller than parent [OK]
Common Mistakes:
Using greater than or equal instead of less than
Allowing equal values on left child
Confusing left and right child rules
3. Given the BST below, what is the correct in-order traversal output?
10
/ \
5 15
/ \ \
3 7 20
medium
A. [3, 5, 7, 10, 15, 20]
B. [10, 5, 3, 7, 15, 20]
C. [20, 15, 10, 7, 5, 3]
D. [5, 3, 7, 10, 15, 20]
Solution
Step 1: Understand in-order traversal
In-order traversal visits left subtree, then node, then right subtree, producing sorted order in BST.
Step 2: Traverse the tree in-order
Left subtree of 10: nodes 3, 5, 7 in order; then 10; then right subtree 15, 20.
Final Answer:
[3, 5, 7, 10, 15, 20] -> Option A
Quick Check:
In-order traversal = sorted nodes [OK]
Hint: In-order traversal of BST gives sorted list [OK]
Common Mistakes:
Confusing pre-order or post-order with in-order
Listing nodes in insertion order
Reversing the traversal order
4. Consider the following BST insertion code snippet. What is the error?
def insert(node, value):
if node is null:
return Node(value)
if value < node.value:
node.left = insert(node.left, value)
else:
node.right = insert(node.right, value)
return node
medium
A. The code does not handle duplicate values correctly.
B. The base case for node is incorrect.
C. The recursive calls do not update the tree.
D. The function does not return the updated node.
Solution
Step 1: Analyze duplicate handling in insertion
The code inserts duplicates into the right subtree without restriction, which may violate BST uniqueness if duplicates are not allowed.
Step 2: Check other parts of the code
Base case and recursive updates are correct; function returns updated node properly.
Final Answer:
The code does not handle duplicate values correctly. -> Option A
Quick Check:
Duplicates need special handling in BST insert [OK]
Hint: Check how duplicates are treated in insertion [OK]
Common Mistakes:
Assuming duplicates are automatically handled
Ignoring return statements in recursion
Confusing base case with recursive case
5. You want to verify if a binary tree is a valid BST. Which approach correctly checks the BST property for all nodes?
hard
A. Check if the tree has unique values only.
B. Check if the tree is balanced and has no cycles.
C. Check if each node's left child is smaller and right child is larger, recursively.
D. Check if all left descendants are smaller and all right descendants are larger than the node, using min and max limits.
Solution
Step 1: Understand BST validation requirements
Each node must satisfy that all nodes in its left subtree are smaller and all in right subtree are larger, not just immediate children.
Step 2: Evaluate approaches
Check if all left descendants are smaller and all right descendants are larger than the node, using min and max limits. uses min and max limits to ensure all descendants satisfy BST property, which is correct. Check if each node's left child is smaller and right child is larger, recursively. only checks immediate children, which is insufficient.
Final Answer:
Check if all left descendants are smaller and all right descendants are larger than the node, using min and max limits. -> Option D
Quick Check:
BST validation requires range checks, not just immediate children [OK]
Hint: Use min/max limits to validate BST recursively [OK]