diff options
| -rw-r--r-- | src/ll.c | 13 | ||||
| -rw-r--r-- | src/ll.h | 2 |
2 files changed, 9 insertions, 6 deletions
@@ -70,15 +70,18 @@ void llinsert(Node** head, int value, int index) { node->next = n; } -void llfree(Node* head) { - Node* n = NULL; - while (head != NULL) { - n = head; - head = head->next; +void llfree(Node** head) { + while (*head != NULL) { + Node* n = *head; + *head = (*head)->next; free(n); } + *head = NULL; } +// TODO: llfree recursive implementation +// ... + int llrmlast(Node** head) { Node* n = *head; Node* cur = NULL; @@ -41,7 +41,7 @@ void llinsert(Node** head, int value, int index); // Free nodes from memory // O(n) -void llfree(Node* head); +void llfree(Node** head); // Remove last node // O(n) |
