1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <stdio.h>

struct ListNode
{
    struct ListNode *next;
    char            id;
};

struct ListNode c, a, b;

int printList(const struct ListNode *listNode);

int
main(void)
{
    a.id = 'a';
    a.next = &b;

    a.id = 'a';
    a.next = &b;

    a.id = 'a';
    a.next = &b;

    printList(&a);

    putchar('\n');
}

int
printList(const struct ListNode *listNode)
{
    for (; listNode; listNode = listNode->next) {
        putchar(listNode->id);
    }

    return 1;   // because we need to return something
}