Deletion in Binary Search Tree

In this lesson, we are going to learn how nodes are deleted in binary search trees. We will take a look at a few node deletion scenarios and what to do in each one.

Introduction #

In this lesson, we are going to study how a node is deleted in a BST. In general, to delete a node in a BST, you will search for it and once found, you will reallocate its left and right subtree, (if present) and then you’ll remove to be deleted node from the BST.

However, to make things simpler, we’ve identified four possible cases involved in BST node deletion. We’ll tackle each one separately:

  1. Deleting in an empty tree
  2. Deleting a node with no children, i.e., a leaf node.
  3. Deleting a node which only has one child
    • Deleting a node which only has a right child
    • Deleting a node which only has a left child
  4. Deleting a node with two children

Let’s look at each of these in detail:

1. Deleting an Empty Tree #

If the given starting node is null then do nothing and return false. This is an edge case for error handling.

2. Deleting a Leaf Node #

When the node to be deleted is a leaf node in a Binary Search Tree, we simply remove that leaf node. We do this by making the parent node’s left or right child (whichever is the leaf node) null.

Have a look at the following example for a demonstration:

Level up your interview prep. Join Educative to access 70+ hands-on prep courses.