rendered paste bodyBinTreeItem *delInfreq(BinTreeItem * cur){ if (cur != NULL) { cur->left = delInfreq(cur->left); cur->right = delInfreq(cur->right); if (cur->count <= FREQUENCY) { if (cur->left == NULL && cur->right == NULL) { delete cur; return NULL; } else if (cur->left != NULL && cur->right == NULL) { BinTreeItem *left = cur->left; delete cur; return left; } else if (cur->left == NULL && cur->right != NULL) { BinTreeItem *right = cur->right; delete cur; return right; } else { BinTreeItem *tmp = cur->right; if (tmp->left == NULL) { tmp->left = cur->left; delete cur; return tmp; } else { BinTreeItem* prev = NULL; while(tmp->left != NULL) { prev = tmp; tmp = tmp->left; } prev->left = tmp->right; tmp->left = cur->left; tmp->right = cur->right; delete cur; return tmp; } } } } return cur;}