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’ll free the space taken by that node and you will reallocate its left and right subtree (if present). 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 has one child only
    1. Deleting a node which has a right child only
    2. Deleting a node which has a left child only
  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 will simply free the space taken by that leaf node. And, then make the parent node’s left or right child (whichever one the leaf node was) NULL. Have a look at the following example for a demonstration

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