* won't point to valid data.
*/
{
- int status = LL_SUCCESS;
ll_node *cur_node = NULL;
- int found = FALSE;
if (list->nelements == 0)
- status = LL_FAILURE;
- else {
- for (cur_node = list->first; (cur_node != NULL) && !found;
- cur_node = cur_node->next) {
- if (cur_node == node) {
+ return LL_FAILURE;
- if (cur_node->prev)
- cur_node->prev->next = cur_node->next;
- else
- list->first = cur_node->next;
+ for (cur_node = list->first; cur_node != NULL; cur_node = cur_node->next) {
+ if (cur_node == node) {
- if (cur_node->next)
- cur_node->next->prev = cur_node->prev;
- else
- list->last = cur_node->prev;
+ if (cur_node->prev)
+ cur_node->prev->next = cur_node->next;
+ else
+ list->first = cur_node->next;
- free(cur_node);
- list->nelements--;
- found = TRUE;
- }
+ if (cur_node->next)
+ cur_node->next->prev = cur_node->prev;
+ else
+ list->last = cur_node->prev;
+
+ free(cur_node);
+ list->nelements--;
+ return LL_SUCCESS;
}
}
- if (!found)
- status = LL_FAILURE;
-
- return(status);
+ return LL_FAILURE;
}