↑
← Blogs
Apr 17, 2026•

Binary Search Tree Bst Concept And Operations

ullas kunder
Ullas Kunder

Designer & Developer

Table of Contents
  1. 1.Binary Search Tree (BST): The Dictionary That Sorts Itself
  2. 2.1. The Core Idea: The "Left is Smaller, Right is Bigger" Rule
  3. 3.2. When Should I Use a BST? (Engineering Decisions)
  4. 4.Comparison Table
  5. 5.3. Core Operations: Search & Insert
  6. 6.Search: The Power of Elimination
  7. 7.Insert: Finding the landing spot
  8. 8.4. Traversal: Getting a Sorted List for Free
  9. 9.5. Delete: The Tricky Part
  10. 10.6. Failure Case: The Unbalanced Tree
  11. 11.🎓 LeetCode Hook: Binary Search Tree Patterns
  12. 12.Summary

Binary Search Tree (BST): The Dictionary That Sorts Itself

In our last post, we learned how to walk through trees and graphs. But what if the tree itself was built in a clever way that made finding things dramatically faster?

That's a Binary Search Tree.

Wait, what about the Islands? 🏝️ In the previous post, I mentioned that we'd soon solve LeetCode puzzles like "Number of Islands." Don't worry, we are absolutely heading there! But first, we need to master the Binary Search Tree to ensure our data-organizing concepts are crystal clear before tackling those larger grid-based traversals.


1. The Core Idea: The "Left is Smaller, Right is Bigger" Rule

Imagine you're organizing a bookshelf by page count. You pick up a book and place it in the middle. Now every book that arrives:

  • If it has fewer pages → it goes to the left of that book.
  • If it has more pages → it goes to the right.

Every single book on that shelf follows this same rule, recursively.

💡 Mental Model Upgrade: BST is a Decision Tree At every node, you’re making a binary decision: Go left or Go right? This connects directly to the logic used in binary search algorithms and recursion, defining clear boundaries for every operation.


2. When Should I Use a BST? (Engineering Decisions)

Interviewers don't just ask what a BST is; they ask when it's the right tool.

Use a BST when:

  • You need dynamic sorted data (you're constantly adding/removing and need it to stay organized).
  • You need frequent mixed operations (insert, delete, and search all happening often).
  • You want ordered traversal (e.g., "Find all users with scores between 50 and 100" — range queries).

Don’t use a BST when:

  • Your data is static. If the list never changes, just use a sorted array + binary search.
  • You need guaranteed O(1) lookup. If you only care about finding a specific key, a HashMap is faster.

Comparison Table

Structure Search Insert Sorted? Key Use Case
Array O(n) O(n) No Simple, unsorted storage
Sorted Array O(log n) O(n) Yes Read-heavy, static data
HashMap O(1) O(1) No Ultra-fast key-value lookup
BST (Balanced) O(log n) O(log n) Yes Dynamic, ordered data

3. Core Operations: Search & Insert

Search: The Power of Elimination

Because of the "Decision Tree" model, at every node, you eliminate half of the remaining tree from your search.

def search(node, target):
    if node is None or node.value == target:
        return node
    if target < node.value:
        return search(node.left, target) # Target is smaller, look left
    return search(node.right, target)    # Target is larger, look right

Insert: Finding the landing spot

Inserting is just a search that "falls off" the tree — the empty spot where the search failed is exactly where the new node should live.

def insert(node, value):
    if node is None:
        return Node(value)      # Found the spot!
    if value < node.value:
        node.left = insert(node.left, value)
    else:
        node.right = insert(node.right, value)
    return node

4. Traversal: Getting a Sorted List for Free

Remember: In-Order traversal means Left → Visit → Right.

Because of the BST rule, an In-Order traversal of any BST will always visit nodes in ascending order. If you have a BST, you have a sorted list "for free" just by walking it.


5. Delete: The Tricky Part

Deletion is complex because you can't leave "holes" that break the BST property. The hardest case is deleting a node with two children.

The fix: Replace the deleted node’s value with its In-Order Successor.

Successor Rule: The in-order successor is the leftmost node in the right subtree (the smallest value that is still larger than the current node).

Delete 5 from this tree:
        5         ← deleting this
       / \
      3   7       ← 7 is the successor (smallest in right subtree)
     / \
    1   4

Wait! 7 slides up, and its old spot is cleaned up. This preserves the 
"Left < Root < Right" rule perfectly.

6. Failure Case: The Unbalanced Tree

If you insert numbers in already-sorted order (1, 2, 3, 4, 5), you get a Skewed Tree:

1
 \
  2
   \
    3
     \
      4

It's just a linked list. The O(log n) speed vanishes and becomes O(n).

🚀 Real-World Insight This happens in real systems when processing sorted logs or sequential timestamps. To prevent this, production systems use Self-Balancing Trees (like AVL or Red-Black Trees). These are the engines behind Java TreeMap and C++ std::map.


🎓 LeetCode Hook: Binary Search Tree Patterns

Ready to practice? These three problems are the "Bread and Butter" of BST interviews:

  1. Validate Binary Search Tree: Can you prove the "Left < Root < Right" rule applies to every single node?
  2. Lowest Common Ancestor in a BST: Use the "Decision Tree" model to find where two paths diverge.
  3. Kth Smallest Element in a BST: Hint: Remember that In-Order traversal gives you a sorted list!

Summary

BSTs are elegant because they turn storage into a decision process.

  • Search is fast (O(log n)) because we prune half the tree at each step.
  • They are the right tool for dynamic, ordered data.
  • Beware of skewed trees; balance is what keeps them fast.

In the next post, we'll see how self-balancing trees like AVL Trees keep themselves from becoming that sad linked list!

Happy Coding ⚡

← Previous

traversal algorithms navigating trees and graphs with bfs and dfs

Next →

leetcode 94 binary tree inorder traversal recursive vs iterative