-
Notifications
You must be signed in to change notification settings - Fork 159
Open
Description
Node* deleteNode(Node head_ref, int x) {
Node temp = head_ref;
// If the node to be deleted is the head node
if (x == 1) {
head_ref = temp->next;
if (head_ref != nullptr) {
head_ref->prev = nullptr;
}
delete temp;
return head_ref;
}
// Traverse to the node just before the position to be deleted
for (int i = 1; i < (x - 1); i++) {
temp = temp->next;
}
Node* nodeToDelete = temp->next;
// Adjust the pointers to skip the node to be deleted
temp->next = nodeToDelete->next;
if (nodeToDelete->next != nullptr) {
nodeToDelete->next->prev = temp;
}
delete nodeToDelete;
return head_ref;
}
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels