Given a Singly Linked List, write a function to delete a given node. Your function must follow following constraints:
1) It must accept a pointer to the start node as first parameter and node to be deleted as the second parameter i.e., a pointer to head node is not global.
2) It should not return a pointer to the head node.
3) It should not accept pointer to pointer to head node.
You may assume that the Linked List never becomes empty.
Let the function name be deleteNode(). In a straightforward implementation, the function needs to modify head pointer when the node to be deleted is the first node. As discussed in previous post, when a function modifies the head pointer, the function must use one of the given approaches, we can’t use any of those approaches here.
We explicitly handle the case when the node to be deleted is the first node, we copy the data of the next node to head and delete the next node. The cases when a deleted node is not the head node can be handled normally by finding the previous node and changing next of the previous node. Following are the implementation.
Given Linked List: 12 15 10 11 5 6 2 3 Deleting node 10: Modified Linked List: 12 15 11 5 6 2 3 Deleting first node Modified Linked List: 15 11 5 6 2 3
Please write comments if you find the above codes/algorithms incorrect, or find other ways to solve the same problem.
- Delete Nth node from the end of the given linked list
- Delete a node in a Doubly Linked List
- Delete a Linked List node at a given position
- Delete every Kth node from circular linked list
- Delete a Node from linked list without head pointer
- Delete a Doubly Linked List node at a given position
- Recursive function to delete k-th node from linked list
- Given only a pointer to a node to be deleted in a singly linked list, how do you delete it?
- Given only a pointer/reference to a node to be deleted in a singly linked list, how do you delete it?
- Create new linked list from two given linked list with greater element at each node
- Delete all occurrences of a given key in a linked list
- Delete middle of linked list
- Delete a linked list using recursion
- Swap Kth node from beginning with Kth node from end in a Doubly Linked List
- Delete all the even nodes from a Doubly Linked List