Problem Link- Delete from any position
Problem Statement:
Deletion from any position other than front is a little different.
Approach:
The deleteNode function removes a node with a specific value from a linked list:
-
If the node to delete is the head:
- Simply update the
headpointer to the next node and delete the oldhead.
- Simply update the
-
If the node is elsewhere:
- Traverse the list until you find the node whose next node has the target value.
- Then, skip over the target node by updating the
nextpointer.
Explanation of iter -> next = iter -> next -> next:
This line removes the target node by by passing it:
-
iter -> nextis the node we want to remove. -
iter -> next -> nextis the node that comes after the one we want to remove. -
By setting
iter -> next = iter -> next -> next, we make the current node skip the node being deleted, linking directly to the next one. This effectively removes the target node from the list.
Time Complexity:
- O(n) because in the worst case, you may have to traverse the entire list to find the node to delete.
Space Complexity:
- O(1) since no additional space is used, only pointers are adjusted.