📖 Scenario: Imagine you are organizing a library's book collection. Each book has a unique ID number. You want to store these books so that you can quickly find any book by its ID. A Binary Search Tree (BST) helps you do this by keeping books in order.
🎯 Goal: You will build a simple Binary Search Tree (BST) with three nodes. You will see how the BST property keeps the tree organized so searching is easy.
📋 What You'll Learn
Create three nodes with values 10, 5, and 15
Link nodes to form a BST where 5 is left child of 10 and 15 is right child of 10
Write a method to print the tree in order (left, root, right)
Print the values to show the BST property in action
💡 Why This Matters
🌍 Real World
BSTs are used in databases and file systems to quickly find data by key, like looking up a book by its ID in a library.
💼 Career
Understanding BSTs is important for software developers working with data storage, search algorithms, and performance optimization.
Progress0 / 4 steps
1
Create BST nodes
Create a class called Node with an int variable value, and two Node variables left and right. Then create three Node objects called root, leftChild, and rightChild with values 10, 5, and 15 respectively.
DSA Java
Hint
Define the Node class with a constructor that sets the value. Then create three nodes with the exact names and values.
2
Link nodes to form BST
Link the nodes by setting root.left to leftChild and root.right to rightChild.
DSA Java
Hint
Assign leftChild to root.left and rightChild to root.right to keep the BST property.
3
Write in-order traversal method
Write a static method called inOrderTraversal that takes a Node parameter called node. It should print the values of the BST in order: first the left subtree, then the node's value, then the right subtree.
DSA Java
Hint
Use recursion: if the node is null, return. Otherwise, visit left child, print value, then visit right child.
4
Print BST values in order
Call the inOrderTraversal method with root in the main method to print the BST values in order.
DSA Java
Hint
Call inOrderTraversal(root); inside main to print the values in order.
Practice
(1/5)
1. What is the main property that defines a Binary Search Tree (BST)?
easy
A. For each node, all values in the left subtree are smaller, and all values in the right subtree are larger.
B. Each node has exactly two children.
C. All nodes have the same value.
D. Nodes are arranged in a complete binary tree shape.
Solution
Step 1: Understand BST definition
A BST is defined by the order of values: left subtree nodes are smaller, right subtree nodes are larger than the current node.
Step 2: Compare options with BST property
For each node, all values in the left subtree are smaller, and all values in the right subtree are larger. matches the BST property exactly. Other options describe different tree types or incorrect properties.
Final Answer:
For each node, all values in the left subtree are smaller, and all values in the right subtree are larger. -> Option A
Quick Check:
BST property = For each node, all values in the left subtree are smaller, and all values in the right subtree are larger. [OK]
Hint: Remember: left < node < right in BST [OK]
Common Mistakes:
Thinking BST requires exactly two children per node
Confusing BST with balanced or complete trees
Assuming all nodes have the same value
2. Which of the following Java method signatures correctly checks if a tree node satisfies the BST property for its immediate children?
3. Consider the following Java code snippet that inserts values into a BST. What will be the in-order traversal output after inserting 10, 5, 15, 3, 7?
medium
A. 10 -> 5 -> 3 -> 7 -> 15 -> null
B. 15 -> 10 -> 7 -> 5 -> 3 -> null
C. 3 -> 5 -> 7 -> 10 -> 15 -> null
D. 5 -> 3 -> 7 -> 10 -> 15 -> null
Solution
Step 1: Insert nodes into BST
Insert 10 as root, 5 to left, 15 to right, 3 left of 5, 7 right of 5.
Step 2: Perform in-order traversal
In-order visits left subtree, node, right subtree: 3, 5, 7, 10, 15.
Final Answer:
3 -> 5 -> 7 -> 10 -> 15 -> null -> Option C
Quick Check:
In-order traversal of BST = sorted values [OK]
Hint: In-order traversal of BST gives sorted order [OK]
4. Given this Java method to check if a tree is a BST, what is the bug?
boolean isBST(TreeNode node, int min, int max) {
if (node == null) return true;
if (node.val <= min || node.val >= max) return false;
return isBST(node.left, min, node.val) && isBST(node.right, node.val, max);
}
medium
A. The method should use < and > instead of <= and >= for comparisons.
B. The base case should return false when node is null.
C. The method does not check the entire subtree values properly.
D. The initial call must provide correct min and max values.
Solution
Step 1: Understand method logic
The method uses min and max bounds to check BST property recursively.
Step 2: Identify bug
The method logic is correct, but if initial min and max are not set properly (e.g., Integer.MIN_VALUE and Integer.MAX_VALUE), it may fail.
Final Answer:
The initial call must provide correct min and max values. -> Option D
Quick Check:
Proper initial bounds needed = The initial call must provide correct min and max values. [OK]
Hint: Always start with full integer range for min and max [OK]
Common Mistakes:
Changing base case to false on null node
Misusing <= and >= causing off-by-one errors
Ignoring initial min/max parameters in first call
5. You have a BST where duplicate values are allowed only on the right subtree. Which modification to the BST property is correct to maintain this rule?
hard
A. Left subtree nodes <= node.val, right subtree nodes > node.val
B. Left subtree nodes < node.val, right subtree nodes >= node.val
C. Left subtree nodes <= node.val, right subtree nodes >= node.val
D. Left subtree nodes < node.val, right subtree nodes > node.val
Solution
Step 1: Understand duplicate placement rule
Duplicates allowed only on right subtree means right subtree can have values equal or greater than node.
Step 2: Adjust BST property accordingly
Left subtree must have strictly smaller values, right subtree must have values greater or equal to node.
Final Answer:
Left subtree nodes < node.val, right subtree nodes >= node.val -> Option B
Quick Check:
Duplicates on right = left < node, right >= node [OK]
Hint: Allow equals only on right side with >= [OK]
Common Mistakes:
Allowing duplicates on left subtree
Using <= on left subtree allowing duplicates there
Forgetting strict less than on left subtree
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.