c++ - Binary Search Tree delete function not working properly -
i working binary search tree , attempting create function delete single node. reason nodes not delete (most of seem instances have right node not left) node won't delete seems pretty haphazard makes difficult debug. error mov(30071,0x7fff73b1d300) malloc: *** error object 0x7fcb2b404f40: pointer being freed not allocated *** set breakpoint in malloc_error_break debug abort trap: 6 but of time node doesn't delete , program continues run. here delete function: node* tree::deletenode(node *node,string title) { if(node == null){ return node; } else if(node->title.compare(title) > 0){ node->left = deletenode(node->left, title); } else if(node->title.compare(title) < 0){ node->right = deletenode(node->right, title); } else { //no child if(node->left == null && node->right == null){ if(node == node->parent->right) { node->parent->right = null; } else { ...