So when I delete in binary search tree, do I need to have like 7 different cases i.e.
Deleting a NULL pointer has no ill effect. So, you should be able to do this with no special cases. The basic part is just:
delete current->left; delete current->right;