// Fragment - deleteItem - recursive version TreeNode deleteItem(TreeNode n, long searchKey) { // Returns a reference to the new root. // Calls: deleteNode. TreeNode newSubtree; if (n == null) { throw new TreeException("TreeException: Item not found"); } else { if (searchKey==n.getItem().getKey()) { // item is in the root of some subtree n = deleteNode(n); // delete the node n } // else search for the item else if (searchKey