COMPLETE QUESTIONS AND ANSWERS.
◍ Q: What happens if the node to delete doesn't exist? Ans: A:
Typically throw an exception or do nothing.
◍ Q: How do you delete a node with no children? Ans: A: Simply
remove it by setting the parent's pointer to null.
◍ Q: How do you delete a node with one child? Ans: A: Replace the
node with its child (connect parent directly to child).
◍ Q: What must you be careful about in Case 2? Ans: A: Whether the
child becomes a left or right child of the parent.
◍ Q: What makes deleting a node with two children difficult? Ans: A:
Removing it directly would break BST ordering.
◍ Q: What is the standard strategy for deleting a node with two
children? Ans: A: Replace it with the smallest value in its right subtree.
◍ Q: Why choose the smallest node in the right subtree? Ans: A: It is
the next valid value in sorted order (no values in between).