#include #include typedef struct Node { int data; struct Node* next; } Node; Node* createNode(int data) { Node* newNode = (Node*)malloc(sizeof(Node)); newNode->data = data; newNode->next = NULL; return newNode; } void doPrintNumberedList(struct Node *list, int number) { if (list == NULL) { return; } printf("%d", number); printf(" . "); printf("%d\n", list->data); doPrintNumberedList(list->next, number + 1); } void printNumberedList(struct Node *list) { if (list == NULL) { return; } doPrintNumberedList(list, 1); } int main() { Node* head = createNode(12); head->next = createNode(22); head->next->next = createNode(33); head->next->next->next = createNode(45); head->next->next->next->next = createNode(56); printNumberedList(head); Node* tmp; while (head) { tmp = head; head = head->next; free(tmp); } return 0; }