Skip to content

Delete node in doubly linked list code is wrong  #2

@Chiro2002

Description

@Chiro2002

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;
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions