Deleting a node from a BST --- Part 2 (the hard case)