delPtr = nodePtr;
nodePtr = nodePtr->leftChildPtr;
delPtr->leftChildPtr = NULL;
You'd need to show more code but it seems very likely to me that while you are setting nodePtr, you aren't updating the parent node's appropriate child pointer. So it still holds the former value of nodePtr which is now invalid as it has been deleted.