'Morning, to all of you ![:)]()
Today I'm trying to implement the very basics functions to manage linked lists.
Anyway, I don't know why the function that should delete a general number N from the list doesn't work.
Let's suppose the list is ordered ( we'll delete just the first match of "number" ).
Here's how I wrote it down
And here's a pic about why I think it should work![:D]()
Note: * are pointers, 3* is a direct consequence of the step n.3
EDIT: The arrow n.1 should start from the pointer, not from the node, sorry.
![Posted Image]()
Output:
If I try to delete the last element of the list, the list remain the same
If I try to delete a numberthat is inside the list it prints me out an infinite sequence of big number:

Today I'm trying to implement the very basics functions to manage linked lists.
Anyway, I don't know why the function that should delete a general number N from the list doesn't work.
Let's suppose the list is ordered ( we'll delete just the first match of "number" ).
Here's how I wrote it down
void deleteN( node * root_ptr, int number ) { node * node_to_delete_ptr = search( root_ptr, number ); // search( a, n ) is a function that returns the pointer to the node that contains the first number n found // it works! if ( node_to_delete_ptr != NULL ) { // the elements we have to find exists // save where the node we have to delete is linked node * swap = node_to_delete_ptr -> next; // delete the node that contains the element delete node_to_delete_ptr; // link the first node to the next element of the list node_to_delete_ptr = swap; } }
And here's a pic about why I think it should work

Note: * are pointers, 3* is a direct consequence of the step n.3
EDIT: The arrow n.1 should start from the pointer, not from the node, sorry.

Output:
If I try to delete the last element of the list, the list remain the same
If I try to delete a numberthat is inside the list it prints me out an infinite sequence of big number:
