Index: list/list.c =================================================================== --- list/list.c (revision 18489) +++ list/list.c (revision 18490) @@ -92,6 +92,15 @@ return list; } +LST(node_t) *LST(last)(LST(node_t) *list) +{ + if (list == NULL) + return NULL; + while (list->next != NULL) + list = list->next; + return list; +} + size_t LST(length)(LST(node_t) *list) { size_t len = 0; Index: list/list.h =================================================================== --- list/list.h (revision 18489) +++ list/list.h (revision 18490) @@ -16,6 +16,7 @@ LST(node_t) *LST(remove_item)(LST(node_t) *list, LST_ITEM_T *item); LST(node_t) *LST(find)(LST(node_t) *list, LST_ITEM_T *item); LST(node_t) *LST(nth)(LST(node_t) *list, int n); +LST(node_t) *LST(last)(LST(node_t) *list); size_t LST(length)(LST(node_t) *list); int LST(get_index)(LST(node_t) *list, LST(node_t) *node);