Deleting node in linked list

user3209183

Most of code works but when I try to delete last element of my list and I print it I see in its place some garbage data, what I'm doing wrong here? Could somebody point my mistake?

void DeleteClient2(struct client *temp,struct client **head)
{   struct client *prev=*head;
    struct client *current = *head;
    struct item *currentitem = (*head)->item_data,*save;
    if(temp== *head)
    {
        while(currentitem != NULL)
        {
            save = currentitem;
            currentitem = currentitem ->next;
            free(save);
        }
        free(temp);
        temp->item_data = NULL;
        (*head) = (*head)->next;
    }
    else
    if(temp->next == NULL)
    {
        while(currentitem != NULL)
        {
            save = currentitem;
            currentitem = currentitem ->next;
            free(save);
        }
        temp->item_data = NULL;
        free(temp);
    }
    else
    if(temp != *head && temp->next != NULL)
    {
        while(prev->next != temp)
        {
            prev=prev->next;
        }
        prev->next = temp->next;
        while(currentitem != NULL)
        {
            save = currentitem;
            currentitem = currentitem ->next;
            free(save);
        }
        temp->item_data = NULL;
        free(temp);
        temp=temp->next;
    }
}
Ashish
void DeleteClient2(struct client *temp,struct client **head)
{   struct client *prev=*head;
    struct client *current = *head;
    struct item *currentitem = (*head)->item_data,*save;
    if(temp== *head) \\ if head is the node to be deleted
    {
        while(currentitem != NULL)
        {
            save = currentitem;
           *head = currentitem->next;
          \\  currentitem = currentitem ->next;
            free(save);
        }

    }
    else
    if(temp->next == NULL) \\ if the node to be deleted is last node then
    {
    while(currentitem->next != NULL)
        {
           *prev = currentitem;
            currentitem = currentitem ->next;

        }
        prev->next = NULL;
        free(currentitem);
}
else
if(temp != *head && temp->next != NULL)\\ node to be deleted is between head and last node
{while(prev->next != temp)
{   currentitem = *prev;
    prev=prev->next;
}
currentitem->next = temp->next;
free(temp);
\\while(currentitem != NULL)
    \\    {
    \\        save = currentitem;
    \\        currentitem = currentitem ->next;
    \\\        free(save);
    \\    }
      \\  temp->item_data = NULL;
     \\   free(temp);
     \\   temp=temp->next;
}
}

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

From Java

Deleting node inside of linked list

From Dev

Deleting a node in a linked list

From Dev

Deleting the only node of a linked list

From Dev

Regarding deleting a node in a linked list

From Dev

Getting error in deleting a node in a linked list using "while loop" but not with "for loop"

From Dev

Deleting a node in a linked list left some data

From Dev

Deleting a specific node from a linked list - python

From Dev

deleting a node from a linked list based on a key

From Dev

Deleting a node from the start of a linked list

From Dev

Freeing allocated space after deleting a node in a Linked List

From Dev

Deleting a node in the center of a single linked list. What happens to the node?

From Dev

Deleting a node at a given position in Linked List

From Dev

Deleting a node in a sorted linked list in C

From Dev

Deleting a node in a singly linked list in java

From Dev

Regarding deleting a node in a linked list

From Dev

Linked list (deleting a node)

From Dev

deleting a node in the middle of a linked list

From Dev

Getting error in deleting a node in a linked list using "while loop" but not with "for loop"

From Dev

Deleting specific node(s) from Singly Linked Circular List

From Dev

Deleting node from linked list issues C

From Dev

Double Linked List Deleting Node with Index C++

From Dev

Deleting a node in a linked list C++

From Dev

Deleting a node in the center of a single linked list. What happens to the node?

From Dev

Singly linked list deleting the last node

From Dev

logical error while deleting node from linked list

From Dev

Deleting a node at a given position in Linked List

From Dev

Deleting node from linked list recursively in C

From Dev

Deleting a node in a doubly linked list

From Dev

Deleting a node appended at the end of a linked list in C

Related Related

  1. 1

    Deleting node inside of linked list

  2. 2

    Deleting a node in a linked list

  3. 3

    Deleting the only node of a linked list

  4. 4

    Regarding deleting a node in a linked list

  5. 5

    Getting error in deleting a node in a linked list using "while loop" but not with "for loop"

  6. 6

    Deleting a node in a linked list left some data

  7. 7

    Deleting a specific node from a linked list - python

  8. 8

    deleting a node from a linked list based on a key

  9. 9

    Deleting a node from the start of a linked list

  10. 10

    Freeing allocated space after deleting a node in a Linked List

  11. 11

    Deleting a node in the center of a single linked list. What happens to the node?

  12. 12

    Deleting a node at a given position in Linked List

  13. 13

    Deleting a node in a sorted linked list in C

  14. 14

    Deleting a node in a singly linked list in java

  15. 15

    Regarding deleting a node in a linked list

  16. 16

    Linked list (deleting a node)

  17. 17

    deleting a node in the middle of a linked list

  18. 18

    Getting error in deleting a node in a linked list using "while loop" but not with "for loop"

  19. 19

    Deleting specific node(s) from Singly Linked Circular List

  20. 20

    Deleting node from linked list issues C

  21. 21

    Double Linked List Deleting Node with Index C++

  22. 22

    Deleting a node in a linked list C++

  23. 23

    Deleting a node in the center of a single linked list. What happens to the node?

  24. 24

    Singly linked list deleting the last node

  25. 25

    logical error while deleting node from linked list

  26. 26

    Deleting a node at a given position in Linked List

  27. 27

    Deleting node from linked list recursively in C

  28. 28

    Deleting a node in a doubly linked list

  29. 29

    Deleting a node appended at the end of a linked list in C

HotTag

Archive